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的Django框架中的URL配置与松耦合
Jul 15 Python
十个Python程序员易犯的错误
Dec 15 Python
Python中扩展包的安装方法详解
Jun 14 Python
Numpy数组转置的两种实现方法
Apr 17 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
python super函数使用方法详解
Feb 14 Python
Python -m参数原理及使用方法解析
Aug 21 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
python 用opencv实现霍夫线变换
Nov 27 Python
opencv实现图像平移效果
Mar 24 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结束标签的使用细节探讨及联想
2013/03/04 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python中使用不同编码读写txt文件详解
2015/05/28 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Python贪心算法实例小结
2018/04/22 Python
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
介绍一下.net和Java的特点和区别
2012/09/26 面试题
生物化学研究助理员求职信
2013/10/09 职场文书
应聘美工求职信
2013/11/07 职场文书
趣味游戏活动方案
2014/02/07 职场文书
普通党员整改措施
2014/10/24 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
思想工作总结范文
2015/08/12 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
python process模块的使用简介
2021/05/14 Python