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通过yield实现数组全排列的方法
Mar 18 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
Apr 25 Python
Python实现基于权重的随机数2种方法
Apr 28 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
JSON Web Tokens的实现原理
Apr 02 Python
python实现12306火车票查询器
Apr 20 Python
django主动抛出403异常的方法详解
Jan 04 Python
python for循环remove同一个list过程解析
Aug 14 Python
基于python读取.mat文件并取出信息
Dec 16 Python
python虚拟环境模块venv使用及示例
Mar 04 Python
python实现简单学生信息管理系统
Apr 09 Python
Python如何导出导入所有依赖包详解
Jun 08 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
php开发环境配置记录
2011/01/14 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
jquery 插件开发方法小结
2009/10/23 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
python使用PyFetion来发送短信的例子
2014/04/22 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
详解Python中的条件判断语句
2015/05/14 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
如何使用python代码操作git代码
2020/02/29 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
学前教育专业毕业生自荐信
2013/10/03 职场文书
总会计师岗位职责
2014/02/19 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
语文教师个人工作总结
2015/02/06 职场文书
党支部鉴定意见
2015/06/02 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python