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脚本操作MongoDB的教程
Apr 16 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
python如何让类支持比较运算
Mar 20 Python
Python unittest模块用法实例分析
May 25 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
如何使用Python实现斐波那契数列
Jul 02 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
pycharm重命名文件的方法步骤
Jul 29 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 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代码
2007/03/03 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
个人自我鉴定范文
2013/10/04 职场文书
日语求职信范文
2013/12/17 职场文书
网上开商店的创业计划书
2014/01/19 职场文书
社会实践感言
2014/01/25 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android