Python反爬虫技术之防止IP地址被封杀的讲解


Posted in Python onJanuary 09, 2019

在使用爬虫爬取别的网站的数据的时候,如果爬取频次过快,或者因为一些别的原因,被对方网站识别出爬虫后,自己的IP地址就面临着被封杀的风险。一旦IP被封杀,那么爬虫就再也爬取不到数据了。

那么常见的更改爬虫IP的方法有哪些呢?

1,使用动态IP拨号器服务器。

动态IP拨号服务器的IP地址是可以动态修改的。其实动态IP拨号服务器并不是什么高大上的服务器,相反,属于配置很低的一种服务器。我们之所以使用动态IP拨号服务器,不是看中了它的计算能力,而是能够实现秒换IP。

动态IP拨号服务器有一个特点,就是每次拨号都会更换一个新的IP地址。多年前家庭中的上网方式大多采用的ADSL拨号上网,也就是断开网络后再拨号一次,外网IP就会换成另一个。

通常来讲,这个IP池很大,可能有多个AB号段,IP数量基本上用不完。对于爬虫来说,这简直是大杀器,能够轻松的解决封杀IP的限制。

使用动态IP拨号服务器,需要付费购买。

2,使用Tor代理服务器。

Tor(The onion router, 洋葱路由器)是互联网上用于保护隐私最有利的工具之一。如果我们不适用Tor,网络请求就会直接发送给目标服务器。

相比之下,如果我们使用tor发送网络请求,客户端就会选择一条随机路径到服务器。这条随机路径中间会经过多个Tor节点,而且使用洋葱路由加密技术,使得任何节点都不能偷取加密数据,并且该请求的传输路径难以追踪,也查不出起点在哪。

Python反爬虫技术之防止IP地址被封杀的讲解

因此,我们可以使用tor技术改变请求的IP地址,作为一种终极的防止IP封锁的爬虫方案。

最近在学习《Python网络爬虫从入门到实践》,了解到其中的关于反爬虫的一些话题,做一下学习笔记。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
python实现简易云音乐播放器
Jan 04 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
详解python里的命名规范
Jul 16 Python
python中文编码与json中文输出问题详解
Aug 24 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
Dec 26 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
基于python实现数组格式参数加密计算
Apr 21 Python
Python Pywavelet 小波阈值实例
Jan 09 #Python
python利用小波分析进行特征提取的实例
Jan 09 #Python
Python 实现中值滤波、均值滤波的方法
Jan 09 #Python
对Python信号处理模块signal详解
Jan 09 #Python
使用python实现语音文件的特征提取方法
Jan 09 #Python
对python中Librosa的mfcc步骤详解
Jan 09 #Python
Python中的枚举类型示例介绍
Jan 09 #Python
You might like
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
模仿OSO的论坛(一)
2006/10/09 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
python检测lvs real server状态
2014/01/22 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
SQL面试题
2013/12/09 面试题
如何开启linux的ssh服务
2013/06/03 面试题
Shell如何接收变量输入
2016/08/06 面试题
护理工作感言
2014/01/16 职场文书
运动会方阵解说词
2014/02/12 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
教师个人事迹材料
2014/12/17 职场文书
送达通知书
2015/04/25 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python