python requests返回中文乱码

  最近在使用python爬取高考分数线时,获得的response里面输出了中文乱码:

from bs4 import BeautifulSoup
import requests

def get_provice_link(url):
    response=requests.get(url)

    print(response.text)
    soup=BeautifulSoup(response.text,‘lxml‘)
    print(soup.title)

def main():
    url=‘http://www.gaokao.com/beijing/fsx/‘
    get_provice_link(url)

if __name__ == ‘__main__‘:
    main()

  解决方案是:将response设置编码格式,一般的如果网页中没有标明type格式,一般默认的都是‘ISO-8859-1‘编码,我们只需要把编码格式转为  ‘gb2312‘ 即可

添加一行代码:下面标红的,这样就可以解决。

 response=requests.get(url)
    response.encoding = ‘gb2312‘
    print(response.text)

原文地址:https://www.cnblogs.com/zll20153246/p/9683002.html

时间: 2024-11-01 12:54:02

python requests返回中文乱码的相关文章

解决SpringMVC的@ResponseBody返回中文乱码

SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.converter.StringHttpMessageConverter类中可以看到如下代码: public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); 解决返回中文乱码的问题有两种,第一种是局部的,只针

SpringMVC使用Ajax请求返回中文乱码

前言: 最近在写一个JavaWeb后台时采用了spring+MyBatis+MySQL的方式.记录下遇到的关键问题 接口返回数据相关 使用@ResponseBody后返回NUll 说明:刚把后台运行起来,兴高采烈的测试接口数据,结果无论如何都是返回null, 最终通过各种百度,发现原来是没有引入关键的Jar包. 解决办法: 需要引入jackson的jar包(jackson core和jackson mapper),引入后 图: 使用@RequestMapping返回中文乱码 原因分析:(网上基本

sae python中Mysql中文乱码的解决

一开始我用的是: db=MySQLdb.connect(db=sae.const.MYSQL_DB,user=sae.const.MYSQL_USER,passwd=sae.const.MYSQL_PASS,host=sae.const.MYSQL_HOST,port=int(sae.const.MYSQL_PORT)) 数据库编码与python代码的编码都已设为utf8,在PHPMyAdmin中添加中文记录,在网页查询显示中却显示乱码,我在网上各种搜索都找不到解决方法.最后终于发现在连接数据库

spring mvc @ResponseStatus 注解 注释返回中文乱码的问题

前言 前文中讲到,使用@ResponseStatus注解,可以修饰一个异常类,在发生异常的时候返回指定的错误码和消息,在返回的 reason中包含中文的时候,就会出现中文乱码的问题 现象 reason中包含中文的时候,前端返回为乱码 /** * 自定义异常类 * * @author Administrator * */ @ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "没有权限") public class TestExce

springmvc配置一:ajax请求防止返回中文乱码配置说明

Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里. Spring使用AnnotationMethodHandlerAdapter的handleResponseBody方法, AnnotationMethodHandlerAdapter使用request header中"Accept"的值和messageConverter支持的MediaType进行匹配,然后会用"Accept"的第一个值写入res

python查询mysql中文乱码问题

python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为'ascii' 4.没有解码 --- 解决方法: 1.设置mysql的编码 ubuntu执行下列语句:** sudo vim /etc/mysql/my.cnf **然后在里面插入语句: [client]default-charac

spring-mvc @responseBody注解返回中文乱码解决

在项目中能设置UTF-8基本都设置了,通过ajax请求后台的springmvc后返回中文字符串,页面显示???,解决办法是: 在方法中添加:produces = "text/html;charset=UTF-8". 具体添加位置如下: @RequestMapping(value="/getpersonLimitItemNameByDeptIdAndSglcheckid", produces = "text/html;charset=UTF-8")

python读取数据库中文乱码问题

今天朋友遇到过怪问题,在同一个页面显示的2条中文记录一个正常,一个乱码,2条记录分别从不同的表里取出.录入的时候采用直接录入.仔细观察2者区别,发现能正常显示的字段在表中类型为nvarchar,不能的是varchar,试着将其改成nvarchar,问题解决. 因为对sqlserver不熟悉.通过查询手册得知: nvarchar表示以Unicode格式存储可变长度的 数据,所以能显示中文,而varchar是用非unicode存储数据,所以乱码.将Varchar类型设置为nvarchar类型,发现问

关于Python万恶的中文乱码和找不到问题

rootDir = os.path.join(CASE_PATH, "系统", "基础", "管理")print rootDirprint(chardet.detect(rootDir))print os.path.exists(rootDir)unicode(rootDir, "utf-8")print rootDirprint(chardet.detect(rootDir))print os.path.exists(uni