一种网络爬虫获取网站数据的方法及装置制造方法及图纸

技术编号:17796692 阅读:43 留言:0更新日期:2018-04-25 20:11
本发明专利技术公开了一种网络爬虫获取网站数据的方法及装置,涉及计算机技术领域,主要目的在于保证大部分使用的代理IP有效并多次利用,并在已有的代理IP失效时,通过动态获取新的代理IP,进行筛选替换失效的代理IP。本发明专利技术主要的技术方案为:提取第一队列中的代理IP用于获取网站数据;根据所述代理IP的有效性去除所述第一队列中的无效代理IP;当所述第一队列中的代理IP数量低于最低阈值时,从第二队列中提取代理IP用于获取网站数据;将所述第二队列中能够有效提取所述网站数据的代理IP添加至所述第一队列中,直至所述第一队列中的代理IP数量达到最高阈值时,再从所述第一队列中提取代理IP用于获取网站数据。本发明专利技术主要用于网络爬虫爬取网络数据。

Method and device for web crawler to get website data

The invention discloses a method and device for obtaining web site data by a network crawler, which involves the field of computer technology. The main purpose is to ensure that most of the agent IP is used effectively and used many times, and when the existing agent IP is invalid, a new proxy IP is obtained by dynamic acquisition, and the proxy IP is screened and replaced. The main technical scheme of the invention is that the agent IP in the first queue is used to obtain the site data, and the invalid proxy IP in the first queue is removed according to the effectiveness of the agent IP; when the number of agent IP in the first queue is lower than the minimum threshold, the agent IP is extracted from the second queue for obtaining the site data; The agent IP in the second queue which can effectively extract the data of the website is added to the first queue until the number of agent IP in the first queue reaches the maximum threshold, then the agent IP is extracted from the first queue to obtain the site data. The invention is mainly used for crawling network data by web crawlers.

【技术实现步骤摘要】
一种网络爬虫获取网站数据的方法及装置
本专利技术涉及计算机
,尤其涉及一种网络爬虫获取网站数据的方法及装置。
技术介绍
网络爬虫是一种用于自动从网站获取数据的工具。对于网站而言,网络爬虫的数据获取会和真实用户的访问一样带来网站资源的消耗,对于某些数据抓取量大的网络爬虫,其资源消耗甚至远大于正常的用户访问。因此,对于很多网站的设计者,一般会对疑似为网络爬虫的访问进行速度限制,通过验证码等方式验证身份,甚至屏蔽某些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数量是否达到最高阈值;若达到,则从所述第一队列中提取代理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用于获取网站数据。

【技术特征摘要】
1.一种网络爬虫获取网站数据的方法,其特征在于,所述方法包括:提取第一队列中的代理IP用于获取网站数据;根据所述代理IP的有效性去除所述第一队列中的无效代理IP;当所述第一队列中的代理IP数量低于最低阈值时,从第二队列中提取代理IP用于获取网站数据;将所述第二队列中能够有效提取所述网站数据的代理IP添加至所述第一队列中,直至所述第一队列中的代理IP数量达到最高阈值时,再从所述第一队列中提取代理IP用于获取网站数据。2.根据权利要求1所述的方法,其特征在于,在提取第一队列中的代理IP用于获取网站数据之前,所述方法包括:利用静态的获取代理IP方式创建所述第一队列,所述第一队列中的代理IP设置有连续爬取失败次数。3.根据权利要求2所述的方法,其特征在于,根据所述代理IP的有效性去除所述第一队列中的无效代理IP包括:当使用所述代理IP获取网站数据成功时,将所述代理IP添加至第一队列中,并将所述连续爬取失败次数清零;当使用所述代理IP获取网站数据失败时,记录所述代理IP的连续爬取失败次数;当所述代理IP的连续爬取失败次数达到预置值时,删除所述代理IP。4.根据权利要求1所述的方法,其特征在于,在所述从第二队列中提取代理IP用于获取网站数据之前,所述方法包括:利用代理IP筛选服务获取代理IP,所述代理IP筛选服务是以固定的频率持续的从代理IP获取服务中筛选有效的代理IP;根据所述代理IP筛选服务获取的代理IP创建第二队列;当所述第二队列中的代理IP数量达到上限值时,将新加入的代理IP替换所述第二队列中最先加入的一个代理IP。5.根据权利要求1所述的方法,其特征在于,所述将所述第二队列中能够有效提取所述网站数据的代理IP添加至所述第一队列中包括:当使用所述第二队列中的代理IP获取网站数据成功时,将所述代理IP添加至所述第一队列;判断所述第一队列中的代理IP数量是否达到最高阈值;若达到,则从所述第一队列中提取代理IP以获取网站数据;若未达到,则从所述第二队列中提取代理IP以获取网站数据。6.根据权利要求1所述...

【专利技术属性】
技术研发人员:张祎博
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1