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通过函数属性实现全局变量的方法
May 16 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
Python数据拟合与广义线性回归算法学习
Dec 22 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
Python关于excel和shp的使用在matplotlib
Jan 03 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
关于Python 的简单栅格图像边界提取方法
Jul 05 Python
tensorflow-gpu安装的常见问题及解决方案
Jan 20 Python
Django模板获取field的verbose_name实例
May 19 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 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
PHP 高手之路(三)
2006/10/09 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
浅谈javascript的调试
2015/01/28 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
keras:model.compile损失函数的用法
2020/07/01 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
三星法国官方网站:Samsung法国
2019/10/31 全球购物
《守株待兔》教学反思
2014/03/01 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
2019军训心得体会
2019/06/27 职场文书
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技