requests 函数对百度链接代码的抓取问题

图一是百度链接,图二是搜狗链接,requests函数没有抓取到百度的代码,请教问题出在哪里?

讨论数量: 6
pardon110

普通的静态页面,你那样操作没问题。但百度有自己的反爬机制,你想要的目标页面是被js动态渲染后的页面。
换而言之,百度会分析你的请求特征点,根据一定模型算法来裁定你是否人为的真实有效的请求,然后给出不同页面响应。
建议想达到浏览器打开的效果,python需要借助Seleniumgolang的话ferret+fql可解决。

3年前 评论
Jason990420

这给的图片不都抓取到 html 页面了吗?!

3年前 评论

需要加请求头

3年前 评论

不加headers的请求都是在裸奔,当然不会给你后台代码,加上请求头和里面的ua就行了

3年前 评论

其实你打印的内容就是百度的页面html,只不过你用的text,导致编码错误,中文没有显示出来

import requests

url = "https://www.baidu.com"
resp = requests.get(url).content
print(resp.decode("utf-8"))
3年前 评论

r.text返回的是Unicode型的数据。 使用r.content返回的是bytes型的数据。 也就是说,如果你想取文本,可以通过r.text。 如果想取图片,文件,则可以通过r.content。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!