[发明专利]一种网络爬虫获取网站数据的方法及装置在审
申请号: | 201610899608.1 | 申请日: | 2016-10-14 |
公开(公告)号: | CN107957999A | 公开(公告)日: | 2018-04-24 |
发明(设计)人: | 张祎博 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京鼎佳达知识产权代理事务所(普通合伙)11348 | 代理人: | 王伟锋,刘铁生 |
地址: | 100086 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网络 爬虫 获取 网站 数据 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种网络爬虫获取网站数据的方法及装置。
背景技术
网络爬虫是一种用于自动从网站获取数据的工具。对于网站而言,网络爬虫的数据获取会和真实用户的访问一样带来网站资源的消耗,对于某些数据抓取量大的网络爬虫,其资源消耗甚至远大于正常的用户访问。因此,对于很多网站的设计者,一般会对疑似为网络爬虫的访问进行速度限制,通过验证码等方式验证身份,甚至屏蔽某些IP地址的访问。以上这些可以称为网站的反爬虫策略,都会对网络爬虫的数据爬取带来问题。
在目前广泛应用的网络爬虫中,有多种方式来应对网站的反爬虫策略。一般而言,对于限制爬取速度的网站,可以通过降低对网站的访问频率来进行爬取。但是一旦网络爬虫的IP被某些网站屏蔽,则只能通过使用代理IP的方式爬取网站的数据。代理IP一般可以通过代理IP服务商获取,代理IP服务商会动态的在短时间内提供大量的代理IP供网络爬虫选择。通过有效的代理IP可以实现对网站的爬取而不被屏蔽,但是,当服务商提供的代理IP质量不高时,会存在大量的代理IP无法正常使用的情况。
在现有的技术实现中,当从代理IP服务商获得的代理IP质量不高时,一般会通过多次重试的方式进行爬取,即在一次对网页的访问失败后,获取一个新的代理IP并对该网站再次爬取,直到网页成功爬取或者达到一定的重试次数。这种方法并没有解决代理IP质量不高的问题,多次重试会影响网页爬取的效率,同时并没有充分的利用有效的代理IP。另外一种方法是对代理IP进行筛选。代理IP的筛选需要在爬取之前进行,一般是首先获得大量的代理IP,然后验证这些代理IP的有效性,最后将验证后有效的代理IP提供给网络爬虫使用。这种方法可以有效的提高使用的代理IP的有效性,但由于这种方法获取的代理IP是有限、固定的,不能动态的跟踪代理IP服务商提供有效的代理IP,即在代理IP服务商提供新的代理IP后,由于不能确定这些新的代理IP的有效性而无法将这些代理IP实时地提供给网络爬虫使用。这使得在爬取时间较长的网络爬虫中,多次使这些固定的IP可能会存在代理IP失效,甚至使用过多而被屏蔽的问题。
发明内容
有鉴于此,本发明提供一种网络爬虫获取网站数据的方法及装置,主要目的在于保证大部分使用的代理IP有效并多次利用,并在已有的代理IP失效时,通过动态获取新的代理IP,进行筛选替换失效的代理IP。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明提供了一种网络爬虫获取网站数据的方法,该方法包括:
提取第一队列中的代理IP用于获取网站数据;
根据所述代理IP的有效性去除所述第一队列中的无效代理IP;
当所述第一队列中的代理IP数量低于最低阈值时,从第二队列中提取代理IP用于获取网站数据;
将所述第二队列中能够有效提取所述网站数据的代理IP添加至所述第一队列中,直至所述第一队列中的代理IP数量达到最高阈值时,再从所述第一队列中提取代理IP用于获取网站数据。
优选地,在提取第一队列中的代理IP用于获取网站数据之前,所述方法包括:
利用静态的获取代理IP方式创建所述第一队列,所述第一队列中的代理IP设置有连续爬取失败次数。
优选地,根据所述代理IP的有效性去除所述第一队列中的无效代理IP包括:
当使用所述代理IP获取网站数据成功时,将所述代理IP添加至第一队列中,并将所述连续爬取失败次数清零;
当使用所述代理IP获取网站数据失败时,记录所述代理IP的连续爬取失败次数;
当所述代理IP的连续爬取失败次数达到预置值时,删除所述代理IP。
优选地,在所述从第二队列中提取代理IP用于获取网站数据之前,所述方法包括:
利用代理IP筛选服务获取代理IP,所述代理IP筛选服务是以固定的频率持续的从代理IP获取服务中筛选有效的代理IP;
根据所述代理IP筛选服务获取的代理IP创建第二队列;
当所述第二队列中的代理IP数量达到上限值时,将新加入的代理IP替换所述第二队列中最先加入的一个代理IP。
优选地,所述将所述第二队列中能够有效提取所述网站数据的代理IP添加至所述第一队列中包括:
当使用所述第二队列中的代理IP获取网站数据成功时,将所述代理IP添加至所述第一队列;
判断所述第一队列中的代理IP数量是否达到最高阈值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610899608.1/2.html,转载请声明来源钻瓜专利网。