博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用requests库抓取页面的时候的编码问题
阅读量:6123 次
发布时间:2019-06-21

本文共 1827 字,大约阅读时间需要 6 分钟。

hot3.png

我在开始加了以下的代码

# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf-8')

但是用

print requests.Session().get(url, data=data).text

结果中输出了长这个样子的乱码

°æȨËùÓÐ 2013 ¶«ÄÏ´óѧÍøÂçÓëÐÅÏ¢ÖÐÐÄ

然后试着查看了一下上面文本的格式

print type(requests.Session().get(url, data=data).text)

输出的结果就是unicode,后来我又看了页面的head头中写了页面编码是gb2312,我后面又把代码改成了

print requests.Session().get(url, data=data).text.encode('gb2312')

结果就出现了下面的异常

UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 227-228: illegal multibyte sequence1

把代码改成

print requests.Session().get(url, data=data).text.encode('gb2312', 'ignore')

依然是乱码

真的是没辙了,希望各位大大指点一下

=============================================================================================

首先,。

其次,不会用 Requests 就去看文档,不要乱来。

  1. 如果 Requests 检测不到正确的编码,那么你告诉它正确的是什么:

    response.encoding = 'gbk'print response.text
  2. 原始内容在 response.content 里,bytes,自己想怎么处理就怎么处理。

  3. 单个请求完全没必要用 Session。直接 requests.get(xxx) 就可以了。

最后,弄不明白怎么处理编码错误的字符串就仔细想想,或者用 Python 3.x,不要。

以下是 Python 3。Python 2 在那个字符串前加个 u 告诉它是 unicode 也一样。

>>> '°æȨËùÓР2013 ¶«ÄÏ´óѧÍøÂçÓëÐÅÏ¢ÖÐÐÄ'.encode('latin1').decode('gbk')'版权所有 2013 东南大学网络与信息中心'

==============================================================================================

首先有一个问题,就是你用requests.Session().get(url,data=data)的方法获得的应该是bytes,你可以用type 看一下,既然是bytes的话,那么这个bytes是你所看到的gb2312编码之后的bytes,所以这里你应该用的是decode解码,而不是 encode编码。因为网页是gb2312编码的啊。所以试试decode,而不是encode。另外如果你想把得到的字符串存储到文件里面,那么还要注 意文件的编码,因为windows默认是gbk编码,你在open的时候要指定文件编码。

另外你还可以参考这个问题。

=================================================================================================

首先先看下网站的charset是什么编码,比如是'utf-8'的,在open url的时候先encoding='utf-8',然后在print的时候,decode('utf-8'),或者跟楼上说的用python 3.0以上的版本对编码的问题简化了很多

=====================================================================================

转载于:https://my.oschina.net/airship/blog/647013

你可能感兴趣的文章
华为交换机AAA特性与思科ACS对接
查看>>
二:Unit 8
查看>>
TortoiseSVN客户端重新设置用户名和密码
查看>>
nagios邮件报警配置
查看>>
Java 生产条形码代码
查看>>
python web开发-flask连接sqlite数据库
查看>>
Zxing二维码扫描
查看>>
MMU的作用
查看>>
决心书
查看>>
计算机网络(2)
查看>>
swoole 安装和简单实用
查看>>
Ubuntu下命令行安装jdk,android-studio,及genymotion虚拟机来进行android开发
查看>>
cat命令常用的13个技巧
查看>>
maven--package
查看>>
Vscode 常用快键键速记--mac版
查看>>
pycharm中某些方法被标黄的原因及解决办法
查看>>
DelayQueue的使用
查看>>
陶哲轩实分析习题9.8.5 : 在有理点间断,无理点连续的严格单调函数
查看>>
Elementary Methods in Number Theory Exercise 1.2.4
查看>>
Code Signal_练习题_shapeArea
查看>>