Python爬虫防封ip的一些技巧


Posted in Python onAugust 06, 2020

在编写爬虫爬取数据的时候,因为很多网站都有反爬虫措施,所以很容易被封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,每次发起请求时随机从中选一个使用,可以进一步提高安全性:

Python爬虫防封ip的一些技巧

把上面随机选择一个User-Agent的代码封装成一个函数:

Python爬虫防封ip的一些技巧

在每次重复爬取之间设置一个随机时间间隔

比如:

time.sleep(random.randint(0,3)) # 暂停0~3秒的整数秒,时间区间:[0,3]

或:

time.sleep(random.random()) # 暂停0~1秒,时间区间:[0,1)

伪造cookies

若从浏览器中可以正常访问一个页面,则可以将浏览器中的cookies复制过来使用,比如:

Python爬虫防封ip的一些技巧

注:用浏览器cookies发起请求后,如果请求频率过于频繁仍会被封IP,这时可以在浏览器上进行相应的手工验证(比如点击验证图片等),然后就可以继续正常使用该cookies发起请求。

使用代理

可以换着用多个代理IP来进行访问,防止同一个IP发起过多请求而被封IP,比如:

附:GitHub上的一个"反反爬虫"项目

道高一尺魔高一丈,你有反爬虫措施,那我也有各种"反反爬虫"的措施,GitHub上就有一位大神专门整理了一个这样的项目:Anti-Anti-Spider,链接地址为:github.com/luyishisi/An可以研究一下。

以上就是Python爬虫防封ip的一些技巧的详细内容,更多关于Python爬虫防封ip的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python多线程扫描端口示例
Jan 16 Python
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
举例讲解Python中的算数运算符的用法
May 13 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
python 弧度与角度互转实例
Apr 15 Python
python多线程实现同时执行两个while循环的操作
May 02 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 Python
Python无损压缩图片的示例代码
Aug 06 #Python
通过实例简单了解python yield使用方法
Aug 06 #Python
Python切片列表字符串如何实现切换
Aug 06 #Python
Python爬虫爬取微信朋友圈
Aug 06 #Python
Python变量及数据类型用法原理汇总
Aug 06 #Python
基于logstash实现日志文件同步elasticsearch
Aug 06 #Python
如何解决pycharm调试报错的问题
Aug 06 #Python
You might like
十天学会php之第八天
2006/10/09 PHP
PHP读取目录下所有文件的代码
2008/01/07 PHP
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
Python中super关键字用法实例分析
2015/05/28 Python
Python切片索引用法示例
2018/05/15 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
django Admin文档生成器使用详解
2019/07/22 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
商业房地产广告语
2014/03/13 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
房屋转让协议书范本
2014/04/11 职场文书
读书小明星事迹材料
2014/05/03 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
创先争优个人承诺书
2014/08/30 职场文书
80后婚前协议书范本
2014/10/24 职场文书
平遥古城导游词
2015/02/03 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python