【无标题】python网络爬虫——自学笔记1.1用requests库爬取图片(补充)

【无标题】python网络爬虫——自学笔记1.1用requests库爬取图片(补充),第1张

上一篇介绍了如何用requests库爬取网络上的图片,但是有的网页可能用上一篇的代码无法爬取,会出现错误,这篇文章着重讲一讲为什么爬取失败的原因之一:网页端有反爬功能,可以检测python爬虫的头部信息,从而发现是爬虫在访问网页,而不是真人用户

首先,我们要看看python爬虫的头部信息有哪些,requests库的request方法就有这个功能,代码如下:

url = "http://www.kaotop.com/file/tupian/20220514/1651918083872.png"
r = requests.get(url)
print(r.request.headers)

运行结果:

{'User-Agent': 'python-requests/2.27.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}

可以看到爬虫的头部信息里的User-Agent写的是python-requests/2.27.1,也就是说,python直接告诉了网页端自己是个爬虫,所以当然会被禁止访问,因此,我们要修改User-Agent的值,使得网页端认为是用户再用浏览器正常仿问网页,而不是爬虫。所以,我们可以将User-Agent修改为Mozilla/5.0,这是一个通用的浏览器标识字段。当然,你也可以使用浏览器的开发者工具查找你所用的浏览器的User-Agent,详情可见社区内其他大佬的文章,这里就不细说了,下面上代码

import requests

UA = {'User-Agent':'Mozilla/5.0'}
# 用一个键值对来伪装python的Use-Agent
url = "http://www.kaotop.com/file/tupian/20220514/1651918083872.png"
# 将python的User-Agent的信息修改为Mozilla/5.0
r = requests.get(url,headers=UA)
print(r.request.headers)
# 上面语句的作用是打印python对网页发起请求的爬虫头部信息,其中包含User-Agent

运行结果:

{'User-Agent': 'Mozilla/5.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}

可以看到,User-Agent的值被成功修改为了Mozilla/5.0,大功告成咯!

最后,谢谢你的阅读,希望我写的东西对你有所帮助!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/918894.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存