Python爬虫防封ip的一些技巧
作者:小雨 时间:2022-07-02 20:03:44
在编写爬虫爬取数据的时候,因为很多网站都有反爬虫措施,所以很容易被封IP,就不能继续爬了。在爬取大数据量的数据时更是瑟瑟发抖,时刻担心着下一秒IP可能就被封了。
本文就如何解决这个问题总结出一些应对措施,这些措施可以单独使用,也可以同时使用,效果更好。
伪造User-Agent
在请求头中把User-Agent设置成浏览器中的User-Agent,来伪造浏览器访问。比如:
headers ={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'} resp = requests.get(url,headers = headers)
还可以先收集多种浏览器的User-Agent,每次发起请求时随机从中选一个使用,可以进一步提高安全性:
把上面随机选择一个User-Agent的代码封装成一个函数:
在每次重复爬取之间设置一个随机时间间隔
比如:
time.sleep(random.randint(0,3)) # 暂停0~3秒的整数秒,时间区间:[0,3]
或:
time.sleep(random.random()) # 暂停0~1秒,时间区间:[0,1)
伪造cookies
若从浏览器中可以正常访问一个页面,则可以将浏览器中的cookies复制过来使用,比如:
注:用浏览器cookies发起请求后,如果请求频率过于频繁仍会被封IP,这时可以在浏览器上进行相应的手工验证(比如点击验证图片等),然后就可以继续正常使用该cookies发起请求。
使用代理
可以换着用多个 * 来进行访问,防止同一个IP发起过多请求而被封IP,比如:
附:GitHub上的一个"反反爬虫"项目
道高一尺魔高一丈,你有反爬虫措施,那我也有各种"反反爬虫"的措施,GitHub上就有一位大神专门整理了一个这样的项目:Anti-Anti-Spider,链接地址为:github.com/luyishisi/An可以研究一下。
来源:https://cloud.tencent.com/developer/article/1581239
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
检测远程文件是否存在
自动更新程序的设计框架
![](https://img.aspxhome.com/file/UploadPic/20098/12/1124390-80s.jpg)
交互设计实用指南系列(1) – “有效性”之“操作入口明确”
![](https://img.aspxhome.com/file/UploadPic/200912/11/door-24s.png)
oracle中添加删除主键的方法
Python程序暂停的正常处理方法
在SQL Server数据库开发中的十大问题
Python字典常见操作实例小结【定义、添加、删除、遍历】
asp如何创建一个Exchange用户?
css学习笔记:为什么在IE6下图片会往下掉一行
![](https://img.aspxhome.com/file/UploadPic/20099/25/2009925225543206s.jpg)
PHP开启opcache提升代码性能
网页制作 JSP与ASP 的比较
MSSQL优化之探索MSSQL执行计划(转)
Sql Server 2005数据库被标记为“可疑”问题
关于Ajax responseText 中文乱码问题
js游戏 俄罗斯方块 源代码
![](https://img.aspxhome.com/file/UploadPic/20081/24/200812414337986s.jpg)
通用分页存储过程
实例:ASP与ACCESS链接
VBScript中LBound函数和UBound函数的用法
针对google Chrome的 CSS hacks
Symfony2框架创建项目与模板设置实例详解
![](https://img.aspxhome.com/file/2023/9/92809_0s.jpg)