[发明专利]一种基于Scrapy-Redis的分布式网络爬虫优化方法在审
申请号: | 202010317200.5 | 申请日: | 2020-04-21 |
公开(公告)号: | CN111611463A | 公开(公告)日: | 2020-09-01 |
发明(设计)人: | 王宝亮;陈伟宁 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F16/951 | 分类号: | G06F16/951;H04L12/24;H04L29/12 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 程毓英 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 scrapy redis 分布式 网络 爬虫 优化 方法 | ||
1.一种基于Scrapy-Redis的分布式网络爬虫优化方法,包括以下方面:
(1)去重过程优化
使用布隆过滤器代替指纹去重机制,在优化后的去重过程中,元素集合使用位数组形式表示;当一个元素被加入集合时,通过K个散列函数将此元素映射成一个位数组中的K个点,并将所有点置为1;在进行判别检索时,若所有点的值均为1,则被检元素大概率出现在集合中;若所有点中存在0,则被检元素一定不在集合中。
(2)空闲监测机制
采用空闲监测机制,空闲监测机制使用Scrapy中的spider_idle信号来监测爬虫的空闲状态,当爬虫进入空闲状态时,该信号被发送;爬虫空闲时的三种情形:一是Request请求正在等待被下载;二是Request请求正在被调度;三是数据正在管道中被处理,为此三类情形设置一个空闲时间阈值作为分界条件,在接收到某节点的空闲信号之后,若监听到空闲时间小于等于空闲时间阈值,则节点继续工作;若监听到空闲时间大于空闲时间阈值,则可以判定为该节点暂无待爬取任务,即可结束此节点进程;
(3)动态请求配置
当客户端频繁向目的服务器发送请求时,可能被服务器辨认为恶意程序进而限定客户端行为,通过配置动态请求解决此问题:
一是进行动态IP的配置:维护一个可长期运行的IP池以供使用,并在每次发起请求时保证IP的随机性,为应对请求失败的情形,根据应用场景,配置接收到何种响应时尝试再次请求,并配置尝试请求次数达到何值时视为爬虫失败;同时,保证动态IP与Scrapy中下载中间件的关联性;
二是进行动态请求头的配置:按真实请求头规范编写一个请求头集合,用来模拟各类浏览器发起请求的过程,禁用Scrapy下载中间件中的请求头设置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010317200.5/1.html,转载请声明来源钻瓜专利网。