一种突破IP限制的爬虫实现方法及系统与流程

文档序号:12625393阅读:1509来源:国知局

本发明属于网络爬虫的技术领域,具体地涉及一种突破IP限制的爬虫实现方法及系统。



背景技术:

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

在互联上抓取用户的信用数据是信用评级的重要手段,例如从支付宝网站抓取的交易记录就能从侧面反映出用户的经济实力。但在抓取这些信息时也遇到了人为设置的技术障碍。

有些网站为了防止爬虫抓取信息,做了IP限制。例如限定单个IP在每分钟内只能访问100次,那么一台爬虫服务器在每分钟内只能发起100次网络请求,当发起第101个请求时则会被目标服务器拒绝。

目前普遍的解决方法是增加服务器从而增加IP地址的数量。例如限定单个IP每分钟内只能访问100次,那么将IP数量增加到500个,就可以达到50000次请求每分钟。这样做虽能解决问题,但花销巨大,很不经济。



技术实现要素:

本发明的技术解决问题是:克服现有技术的不足,提供一种突破IP限制的爬虫实现方法,其花费小而能够突破IP限制来实现爬虫抓取信息。

本发明的技术解决方案是:这种突破IP限制的爬虫实现方法,该方法包括以下步骤:

(1)爬虫调度服务器下发一个抓取任务,抓取任务包含任务ID、HTTP请求的URL以及全部参数、最长等待时间;

(2)客户端接收到抓取任务后,立即发起HTTP请求来抓取相应的页面;

(3)页面抓取完成,检查有没有超过最长等待时间,若没有超过最长等待时间,则执行步骤(4),否则执行步骤(1);

(4)将抓取到的数据发送到爬虫调度服务器,同时标注任务ID,抓取到的数据为HTTP响应返回的字符串。

本发明把抓取页面的任务下发到客户端(例如,用户手机上安装的APP),借由客户端提供的庞大IP数量来突破限制,因此花费小而能够突破IP限制来实现爬虫抓取信息。

还提供了一种突破IP限制的爬虫实现系统,该系统包括:

爬虫调度服务器,其配置来下发一个抓取任务,抓取任务包含任务ID、HTTP请求的URL以及全部参数、最长等待时间;

客户端,其配置来接收到抓取任务后,立即发起HTTP请求来抓取相应的页面;

检测模块,其配置来在页面抓取完成,检查有没有超过最长等待时间;

发送模块,其配置来将抓取到的数据发送到爬虫调度服务器,同时标注任务ID,抓取到的数据为HTTP响应返回的字符串。

附图说明

图1是根据本发明的突破IP限制的爬虫实现方法的流程图。

具体实施方式

如图1所示,这种突破IP限制的爬虫实现方法,该方法包括以下步骤:

(1)爬虫调度服务器下发一个抓取任务,抓取任务包含任务ID、HTTP请求的URL以及全部参数、最长等待时间;

(2)客户端接收到抓取任务后,立即发起HTTP请求来抓取相应的页面;

(3)页面抓取完成,检查有没有超过最长等待时间,若没有超过最长等待时间,则执行步骤(4),否则执行步骤(1);

(4)将抓取到的数据发送到爬虫调度服务器,同时标注任务ID,抓取到的数据为HTTP响应返回的字符串。

本发明把抓取页面的任务下发到客户端(例如,用户手机上安装的APP),借由客户端提供的庞大IP数量来突破限制,因此花费小而能够突破IP限制来实现爬虫抓取信息。

更进一步地,所述步骤(1)中最长等待时间为30秒。

另外,所述步骤(4)之后还包括校验步骤:两个客户端在最长等待时间内发出相同的HTTP请求,将返回的结果提交给爬虫调度服务器,若提交的结果也相同,则判定此次抓取真实有效;若提交结果不同,则判定本次抓取无效,重新下发抓取任务。

另外,所述步骤(4)之后还包括:爬虫调度服务器每收集到一次提交,就在缓存中查找这次的任务ID,如果已经有其他客户端提交过,就对比两次提交是否一致,否则把这次提交记入缓存。

另外,对比两次提交,如果一致则抓取可信,将结果写进数据库;若两次提交不一致,则本次抓取任务作废,重新生成抓取任务,重新下发。

另外,所述步骤(1)中,爬虫调度服务器均匀地下发任务。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种突破IP限制的爬虫实现系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的系统,其包括:

爬虫调度服务器,其配置来下发一个抓取任务,抓取任务包含任务ID、HTTP请求的URL以及全部参数、最长等待时间;

客户端,其配置来接收到抓取任务后,立即发起HTTP请求来抓取相应的页面;

检测模块,其配置来在页面抓取完成,检查有没有超过最长等待时间;

发送模块,其配置来将抓取到的数据发送到爬虫调度服务器,同时标注任务ID,抓取到的数据为HTTP响应返回的字符串。

以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1