python3爬虫百度搜索结果乱码
作者:高景洋 日期:2022-12-07 17:12:20 浏览次数:1536
url = 'https://www.baidu.com/s?wd={}'.format(keyword_query)
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
#'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Cookie': 'cookie 要替换成自己的',
'Host': 'www.baidu.com',
'sec-ch-ua': '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-User': '?1',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}
resp1 =requests.get(url,headers=headers)
resp1.encoding = 'utf-8'
python3 获取百度搜索结果时,总是乱码~
排查思路如下:
1、乱码问题,一般与编码有关~遂对 上述代码中,resp1 对像进行各种 decode 操作,结果仍不能正常返回结果
2、请求时 header中缺少内容?遂通过抓包,将浏览器header中的所有内容,一个不少的,全部都拉了过来,结果还是不行
3、检查header中的项,发现 'Accept-Encoding': 'gzip, deflate, br' 有可疑的味道~ 因在做网站过程中,为了让页面加载更快,可以在nginx中将页面进行gzip压缩操作,该操作会使页面加载速度有成倍的速度变化。如果页面被压缩,是否会对页面编码产生影响?
遂将header中的该项注释,重新运行,重新进行编码操作~ 结果正常~
4、经查资料,页面gzip后,页面内容会被编译成另一种格式,在应用爬虫时,会影响正常的编码解码操作。
所以,在我们处理爬虫操作时,如果遇到的编码问题解决不了,不妨试一下,去掉header中的 压缩操作。
本文永久性链接:
<a href="http://r4.com.cn/art216.aspx">python3爬虫百度搜索结果乱码</a>
<a href="http://r4.com.cn/art216.aspx">python3爬虫百度搜索结果乱码</a>
当前header:Host: r4.com.cn
X-Host1: r4.com.cn
X-Host2: r4.com.cn
X-Host3: 127.0.0.1:8080
X-Forwarded-For: 18.97.9.175
X-Real-Ip: 18.97.9.175
X-Domain: r4.com.cn
X-Request: GET /art216.aspx HTTP/1.1
X-Request-Uri: /art216.aspx
Connection: close
User-Agent: CCBot/2.0 (https://commoncrawl.org/faq/)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
If-Modified-Since: Sun, 16 Jun 2024 12:22:42 GMT
Accept-Encoding: br,gzip