weixin_42368395 2022-05-12 14:48 采纳率: 50%
浏览 299
已结题

python爬虫爬取网页为什么获得的不是正常网页数据

使用python的requests库爬取百度搜索页面的时候,同样的代码,UA是从浏览器复制的,cookie也按照浏览器的复制添加到请求头了,为什么家里的电脑可以正常获取网页数据而另一台电脑获取的全是乱码?有人可以解答一下吗,谢谢啦。PS:这里的乱码不是中文乱码。而是数据全部乱码,具体可以见下面截图。
这里是用到的代码部分

import requests
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Connection": "keep-alive",
"Accept-Encoding": "gzip, deflate, br",
"Host": "www.baidu.com",
"Cookie": "这里一长串就不复制了太占地方,就是直接从浏览器扒出来的cookie"
}
page = 0
v_text = "查询内容"
url = 'http://www.baidu.com/s?wd=%27 + v_text + '&pn=' + str(page * 10)
r = requests.get(url,headers=myheaders)
以上是获取页面信息部分

正常和异常数据对比图如下

首先是在家里电脑的正常数据截图:

img

以及输出的信息截图:

img

可见状态码200,数据正常
但使用另一台电脑运行同样代码后数据为:

img

输出信息为:

img

可见无法异常时获得的数据全部为乱码并且requests库无法检测出数据编码格式。
我又将为解码的数据(即r.content)输出,发现同样为乱码,如下图:

img

并且异常时的数据长度比正常时的数据长度小得多。正常大概800多KB而异常的只有100多KB

不知道是否是另一台电脑被IP反爬的原因,如果是反爬机制的话为什么会出现乱码而不是百度页面正常的人机验证页面。我同样尝试了使用芝麻代理的免费IP代理,异常结果任然相同,可能不是高匿代理的原因?
求解答一下疑惑,为什么会出现这种情况,是否真的受到反爬机制拦截?为什么会是乱码?orz!
  • 写回答

2条回答 默认 最新

  • 二九筒 2022-05-12 17:23
    关注

    这代码里面好多错误,你是怎么运行成功的?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月27日
  • 已采纳回答 5月19日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error