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中处理字符串之islower()方法的使用简介
May 19 Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
QML使用Python的函数过程解析
Sep 26 Python
使用Python制作一个打字训练小工具
Oct 01 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
python的Jenkins接口调用方式
May 12 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
Pandas之缺失数据的实现
Jan 06 Python
Python基础详解之邮件处理
Apr 28 Python
Python基本的内置数据类型及使用方法
Apr 13 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实现的简单压缩英文字符串的代码
2008/04/24 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
jquery处理json对象
2014/11/03 Javascript
javascript常用的方法分享
2015/07/01 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python将xml和xsl转换为html的方法
2015/03/10 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
公司薪酬管理制度
2014/01/31 职场文书
社区健康教育工作方案
2014/06/03 职场文书
信用卡工作证明模板
2014/09/14 职场文书
廉洁自律证明
2015/06/24 职场文书
导游词之无锡梅园
2019/11/28 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL
 python中的元类metaclass详情
2022/05/30 Python
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL