博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
win10+python3.5,使用requests抓取信息遇到chunked乱码的诡异问题。python2.7则不乱码...
阅读量:4709 次
发布时间:2019-06-10

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

ython3.5,requests遇到链接  http://app.cnmo.com/android/233888/history.html,抓取出现乱码,发现是chunked编码的,指定编码也不行,自动检测到编码为None。

QQ群里问群友,群友用python2.x的,同样的代码,不乱码。我也切换python2.x验证,确实不出现乱码。

1 #coding:utf-8 2 import requests 3 headers = { 4     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" 5 } 6  7 # 这个链接是chunked编码的,源码是GB2312编码,python3.x乱码,python2.x正常 8 url = 'http://app.cnmo.com/android/233888/history.html' 9 resp = requests.get(url=url,headers=headers)0 print(resp.text)

 

python3.5.2

 

python2.7.13

这个问题百思不得其解,百度、谷歌、360、搜狗、必应,能搜的都搜一遍,还是没搞定。

 

 

晚上再看了一遍网页请求头,干脆全部添加进去,结果不乱码了。后面只保留"Accept-Encoding"、"User-Agent"字段,不乱码,"Accept-Encoding"的值可以为空或任意编码,好像都不乱码。至于为什么我不清楚,可能需要开发者解答了

1 #coding:utf-8 2 import requests 3 headers = { 4     "Accept-Encoding": "", # 添加这个字段后,python3.x下不乱码了 5     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" 6 } 7  8 # 这个链接是chunked编码的,源码是GB2312编码,headers添加了Accept-Encoding字段,结果不会乱码了 9 url = 'http://app.cnmo.com/android/233888/history.html'10 resp = requests.get(url=url,headers=headers)11 print(resp.text)

 

python3.5.2已经不乱码了 

转载于:https://www.cnblogs.com/pyspider/p/7219829.html

你可能感兴趣的文章
Jquery radio选中
查看>>
netty接收大文件的方法
查看>>
软件工程设计之四则运算
查看>>
SpringMVC @ResponseBody 406
查看>>
Partial Tree UVALive - 7190(完全背包)
查看>>
顺序容器的insert使用方法
查看>>
Markdown的使用
查看>>
销售系统学习.mdl
查看>>
触发器
查看>>
mysql配置默认字符集为UTF8mb4
查看>>
WPF实现3D翻转的动画效果
查看>>
自定义圆环进度条
查看>>
UILayer
查看>>
复杂对象写入文件
查看>>
k8s-高级调度方式-二十一
查看>>
[HDU3555]Bomb
查看>>
基于dubbo的分布式系统(一)安装docker
查看>>
Recursion
查看>>
66. Plus One
查看>>
COMP30023 Computer Systems 2019
查看>>