[发明专利]一种通用的互联网数据采集反反爬系统及方法有效
申请号: | 201711037128.5 | 申请日: | 2017-10-30 |
公开(公告)号: | CN109729044B | 公开(公告)日: | 2022-01-14 |
发明(设计)人: | 白晓哲;尚林林 | 申请(专利权)人: | 北京宸瑞科技股份有限公司 |
主分类号: | H04L9/40 | 分类号: | H04L9/40;H04L67/02 |
代理公司: | 北京康思博达知识产权代理事务所(普通合伙) 11426 | 代理人: | 刘冬梅;路永斌 |
地址: | 100190 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 互联网 数据 采集 反反爬 系统 方法 | ||
1.一种通用的互联网数据采集反反爬方法,其特征在于,该方法包括以下步骤:
步骤1:通过UA头发送模块(011)接收服务器提出的UA验证请求,从UA头列表(012)中随机抽取UA头,向服务器提供随机UA头;
步骤2:通过代理IP发送模块(021)接收服务器提出的IP验证请求,并向代理IP管理模块(022)发送调取代理IP的请求,代理IP管理模块(022)从IP代理池(023)中获取随机代理IP后传送至代理IP发送模块(021),经附加代理IP于HTTP请求头中后,向服务器提供代理IP;
步骤3:通过请求间隔控制模块(031)控制请求源对服务器的请求间隔,使请求间隔随机化;
步骤4:通过登录请求查询模块(041)确定服务器是否发送登录请求,若服务器发送登录请求,通过自动登录模块(044)以拼接登录链接模式或者内置无界面浏览器模式实施网站登录;若服务器未发送登录请求,则登录请求查询模块(041)不进行信号传送及后续自动登录模块(044)不进行相关登录操作;
步骤5:通过验证码请求查询模块(051)确定服务器是否发送验证码请求,若服务器发送验证码请求,则验证码请求查询模块(051)将请求信号传送至验证码识别模块(052),验证码识别模块(052)接收验证码请求查询模块(051)传送的请求信号,对验证码进行文字识别,并进行验证码文字输入;若服务器未发送验证码请求,则验证码请求查询模块(051)不进行信号传送;
步骤1中,还包括通过UA头管理模块(013)在UA头列表(012)中构建UA头子列表,将UA头列表(012)中载有相同浏览器不同版本信息的UA头划入同一个UA头子列表中,形成浏览器分组;
通过UA头管理模块(013)获取浏览器的最新版本信息,并对UA头列表(012)中的UA头进行更新,获得更新后的UA头列表(012);
通过UA头管理模块(013)获取最新的浏览器市场占有份额的数据,采用数组填充法对各UA头子列表中UA头被抽取的概率进行设定,使各UA头子列表中UA头被抽取的概率与其对应的浏览器的市场占有份额相符;
步骤2中,还包括通过代理IP管理模块(022)利用免费网址或收费渠道获得大量的稳定代理IP,经检测有效后存入IP代理池(023)中;
其中,代理IP管理模块(022)检测代理IP有效性的核心代码为:telnetlib.Telnet('ip',port='80',timeout=10);
通过代理IP管理模块(022)对IP代理池(023)中的代理IP进行监控,统计采用各代理IP的请求被网站拒绝或开放的次数,其中统计项目包括各代理IP访问的网站、拒绝次数、成功次数,还包括拒绝请求的时间点和允许访问的时间点,并将统计结果存入代理IP数据存储模块(024);
通过代理IP数据存储模块(024)对其存储的数据按访问网站进行项目划分,在特定访问网站的项目下,根据拒绝次数或成功次数将代理IP数据排序,根据设定的拒绝次数和/或成功次数将排序后的代理IP数据分为高价值组、低价值组和无价值组;
步骤3中,将请求间隔控制模块(031)与代理IP管理模块(022)相关联,请求间隔控制模块(031)将设定的获取网站中网页信息的标准速度S与目标网站的最大允许访问频率发送至代理IP管理模块(022),代理IP管理模块(022)根据接收到的数据选择代理IP,依次提供给代理IP发送模块(021);
当请求间隔控制模块(031)设定的获取网站中网页信息的标准速度S等于或接近目标网站的最大允许访问频率时,采用高价值组内代理IP;当请求间隔控制模块(031)设定的获取网站中网页信息的标准速度S较大程度的低于目标网站的最大允许访问频率时,采用低价值组内代理IP;当请求间隔控制模块(031)设定的获取网站中网页信息的标准速度S介于上述两种情况设定的标准速度之间时,混合采用高价值组和低价值组内代理IP;
步骤4中,以拼接登录链接模式登陆的过程为:
通过登录请求查询模块(041)确定服务器是否发送登录请求,若服务器发送登录请求,则登录请求查询模块(041)将请求信号传送至链接拼接模块(042),链接拼接模块(042)拼接登录链接后,将登录链接传送至自动登录模块(044),自动登录模块(044)依照登录逻辑实现登录;若服务器未发送登录请求,则登录请求查询模块(041)不进行信号传送,及后续自动登录模块(044)不进行相关登录操作;
以内置无界面浏览器模式登陆的过程为:
通过登录请求查询模块(041)确定服务器是否发送登录请求,若服务器发送登录请求则登录请求查询模块(041)将请求信号传送至输入框定位模块(043),输入框定位模块(043)获取目标网站登录窗口中相应输入框的URL,并将该URL发送至自动登录模块(044),自动登录模块(044)采用Selenium WebDriver+PhantomJs技术实现相应输入框内容的输入,并利用获取Cookie的核心代码获取Cookie,实现目标网站的自动登录;若服务器未发送登录请求则登录请求查询模块(041)不进行信号传送,及后续自动登录模块(044)不进行相关登录操作。
2.根据权利要求1所述的方法,其特征在于,步骤3中,还包括通过请求间隔控制模块(031)测试目标网站的最大允许访问频率,以及记录请求源对目标网站的实际访问频率,根据算法公式Ti=Ti-1+Kp*(S-N),控制请求间隔;
其中,i为自然数,i=1,2,3,…;
Ti是对第i次请求设定的延时时间;
Ti-1是对第i-1次请求设定的延时时间;
Kp为比例系数,为-0.05;
S是设定的获取目标网站中网页信息的标准速度,单位为页/分钟;
N是请求间隔控制模块(031)统计获得的请求源对目标网站的实际访问频率,单位为页/分钟。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京宸瑞科技股份有限公司,未经北京宸瑞科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711037128.5/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置