爬虫系列四:为你的爬虫加速
来源:互联网 发布:eosremote软件下载 编辑:程序博客网 时间:2024/05/29 13:46
注意:本文所写主要是基于单机的爬虫程序,也就是怎么把单机的爬虫程序,效率提高。
1、手工识别和拒绝爬虫的访问
有相当多的爬虫对网站会造成非常高的负载,因此识别爬虫的来源IP是很容易的事情。最简单的办法就是用netstat检查80端口的连接。
拒绝爬虫请求既可以通过内核防火墙来拒绝,也可以在web server拒绝。
应对方案:反IP,那么就变IP,设置代理。
2、通过识别爬虫的User-Agent信息来拒绝爬虫
每个爬虫在爬取网页的时候,会声明自己的User-Agent信息,因此我们就可以通过记录和分析User-Agent信息来挖掘和封锁爬虫。其实在我们利用不同的浏览器浏览网页时,也会观察到,不同浏览器发送的这个User-Agent信息不一样,这一步就是让服务器认为我们是在利用不同的浏览器进行浏览。
应对方案:侦测User-Agent,那么就改这一项。
3、用时间窗口来改进实时反爬虫系统
爬虫爬取网页的频率都是比较固定的,不像人去访问网页,中间的间隔时间比较无规则,所以我们可以给每个IP地址建立一个时间窗口,记录IP地址最近2次访问时间,每记录一次就滑动一次窗口,比较最近访问时间和当前时间,如果间隔时间很长判断不是爬虫,清除时间窗口,如果间隔不长,就回溯计算指定时间段的访问频率,如果访问频率超过阀值,就转向验证码页面让用户填写验证码。
应对方案:
对于这种办法,解决方案就是,利用二进制规避算法,爬虫自动学习。
0 0
- 爬虫系列四:为你的爬虫加速
- Python爬虫学习系列教程-----------爬虫系列 你值的收藏
- Python爬虫系列之----Scrapy(四)一个简单的示例
- scrapy爬虫学习系列四:portia的学习入门
- python爬虫系列(四):请求伪装的做法
- python网络爬虫系列教程——python网络数据爬虫误区,让你的爬虫更像人类
- 爬虫系列
- 爬虫系列
- 爬虫总结(四)-- 分布式爬虫
- 爬虫系列二:认识爬虫
- 爬虫系列三:开发爬虫
- 网络爬虫(四) Java实现简单的网络爬虫
- [爬虫] 爬虫的实现
- 那些你不知道的爬虫反爬虫套路
- 用代理服务器加速爬虫速率
- Python学习笔记(四) -- 简单的爬虫
- python网络爬虫系列(四) --- 批量抓取并保存图片
- Python爬虫Handler处理器 和 自定义Opener系列之四
- Java 网络爬虫获取网页源代码原理及实现
- vmare 9.0 虚拟机硬盘扩展空间
- 解读 Q_D, Q_Q 指针
- 文档型数据库CouchBase应用实践
- linux设备:cdev和kobj_map
- 爬虫系列四:为你的爬虫加速
- 每天一个小程序(12)——交换排序之冒泡排序
- IOS学习记录 基础类UIWindow,UIView,UISreen篇
- Java对象及其引用
- php serialize和unserialize
- linux 更改文件所属用户及用户组
- GSM7bit编码对应表
- 使用NPOI操作EXCEL时设置超链接和文字颜色
- java下载文件