CN108551452B - 网络爬虫方法、终端及存储介质 - Google Patents

网络爬虫方法、终端及存储介质 Download PDF

Info

Publication number
CN108551452B
CN108551452B CN201810349987.6A CN201810349987A CN108551452B CN 108551452 B CN108551452 B CN 108551452B CN 201810349987 A CN201810349987 A CN 201810349987A CN 108551452 B CN108551452 B CN 108551452B
Authority
CN
China
Prior art keywords
proxy
validity
access
preset
success rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810349987.6A
Other languages
English (en)
Other versions
CN108551452A (zh
Inventor
阮晓雯
徐亮
肖京
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201810349987.6A priority Critical patent/CN108551452B/zh
Priority to PCT/CN2018/100162 priority patent/WO2019200784A1/zh
Publication of CN108551452A publication Critical patent/CN108551452A/zh
Application granted granted Critical
Publication of CN108551452B publication Critical patent/CN108551452B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种网络爬虫方法,包括:将每隔预设时间段获取的多个代理IP存储于预先设置的代理IP池中;对所述代理IP池中的每个代理IP进行逐个验证,判断所获取的代理IP的有效性;将确定为有效的代理IP记录于所述代理IP池中的白名单中,将确定为无效的代理IP记录于所述代理IP池中的黑名单中;当侦测到当前的代理IP满足预先设置的代理替换条件时,从所述代理IP池中的所述白名单中选取出一个代理IP;及将选取出的代理IP作为新的代理IP进行数据爬取。本发明还提供一种终端及存储介质。本发明能够有效地解决同一代理IP在长时间、多次快速、大量爬取数据的过程中的IP受限问题。

Description

网络爬虫方法、终端及存储介质
技术领域
本发明涉及网络爬虫技术领域,具体涉及一种网络爬虫方法、终端及存储介质。
背景技术
网络爬虫是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集网页,采集信息,这些网页信息用于设置索引从而为搜索引擎提供支持,其性能的优劣直接影响着搜索引擎的效果。随着网络信息量几何级的增长,对网络爬虫页面采集的性能和效率的要求也越来越高。
我们总是希望在更短的时间内,获取更多的数据,但是,这会对网站造成非常高的负载,也带来了网络流量增加,泄露隐私数据等问题,很多网站采用爬虫检测技术,分析Web访问日志,当判断出爬虫时,则禁止爬虫使用地址,拒绝爬虫继续访问。尤其是在批量爬取百度指数和微博指数等时,同一账号同一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是本发明实施例一提供的网络爬虫方法的流程图。
图2是本发明实施例二提供的网络爬虫方法的流程图。
图3是本发明实施例三提供的网络爬虫装置的结构图。
图4是本发明实施例四提供的网络爬虫装置的结构图。
图5是本发明实施例五提供的终端的示意图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例的网络爬虫方法应用在一个或者多个终端中。所述网络爬虫方法也可以应用于由终端和通过网络与所述终端进行连接的服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的网络爬虫方法可以由服务器来执行,也可以由终端来执行;还可以是由服务器和终端共同执行。
所述对于需要进行网络爬虫方法的终端,可以直接在终端上集成本发明的方法所提供的网络爬虫功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以以软件开发工具包(Software Development Kit,SDK)的形式运行在服务器等设备上,以SDK的形式提供网络爬虫功能的接口,终端或其他设备通过提供的接口即可实现手部的跟踪。
实施例一
图1是本发明实施例一提供的网络爬虫方法的流程图。根据不同的需求,该流程图中的执行顺序可以改变,某些步骤可以省略。
101:将每隔预设时间段获取的多个代理IP存储于预先设置的代理IP池中。
本实施例中,在本地数据库中预先设置一个代理IP池,将所获取的多个代理IP添加到该代理IP池中,以供爬虫使用。可以在互联网上提供的代理IP的网站站点中找到代理IP,具体的列表可以通过人工方式或另外的小爬虫自动获取。也可以通过第三方服务机构购买多个代理IP,并将所获取的代理IP添加到预先设置的代理IP池中。
本实施例中,所述代理IP的代理信息可以包括,但不限于:IP地址、名称及所述端口。
本实施例中,可以每隔预设时间段,例如,每隔一天,一周等,通过人工或另外的小爬虫自动在互联网上提供的代理IP的网站站点中获取代理IP或者通过第三方服务机构购买多个代理IP的方式获取代理IP,并将所获取的代理IP存储于所述代理IP池中,如此可以保证所述代理池中的IP的数量足够多,且不间断的获取代理IP,可以更新所述代理IP池,供爬虫使用。
102:对所述代理IP池中的每个代理IP进行逐个验证,判断所获取的代理IP的有效性。
本实施例中,将进行有效性验证的代理IP称之为待验证的代理IP,使用待验证的代理IP首次访问搜索引擎(例如,谷歌、百度等)以验证是否得到搜索引擎的响应。如果首次访问得到搜索引擎的响应,表明该待验证的代理IP有效,如果首次访问没有得到搜索引擎的响应,表明该待验证的代理IP无效。所述是否能够得到搜索引擎的响应是指待验证的代理IP首次能够从所访问的搜索引擎中爬取到数据,即不会被所访问的搜索引擎进行首次访问限制。
103:将确定为有效的代理IP记录于所述代理IP池中的白名单中,将确定为无效的代理IP记录于所述代理IP池中的黑名单中。
本实施例中,预先在所述代理IP池中设置一个白名单列表和一个黑名单列表。所述白名单列表用于记录所述代理IP池中被确定为有效的代理IP,所述黑名单列表用于记录所述代理IP池中被确定为无效的代理IP。
104:当侦测到当前的代理IP满足预先设置的代理替换条件时,从所述代理IP池中的所述白名单中选取出一个代理IP。
本实施例中,预先设置代理替换条件,当侦测到当前的代理IP满足预先设置的代理替换条件时,从所述代理IP池中的所述白名单中选取出一个代理IP。
本实施例中,所述当前的代理IP满足预先设置的代理替换条件包括以下一种或多种的组合:
1)当前的代理IP的访问时间超过预先设置的访问时间阈值;
所述预先设置的访问时间阈值可以是10分钟,则当所述当前的代理IP的访问时间超过10分钟时,即侦测到所述当前的代理IP满足了所述预先设置的代理替换条件,则从所述代理IP池中选取出一个代理IP,如此能够有效地解决同一代理IP长时间爬取数据时造成的IP受限问题。
2)当前的代理IP的访问频率超过预先设置的访问频率阈值;
所述预先设置的访问频率阈值可以是100次/秒,则当所述当前的代理IP的访问频率超过100次/秒时,即侦测到所述当前的代理IP满足了所述预先设置的代理替换条件,则从所述代理IP池中选取出一个代理IP,如此能够有效地解决同一代理IP多次快速爬取数据时造成的IP受限问题。
3)当前的代理IP的访问数量超过预先设置的访问数量阈值;
所述预先设置的访问数量阈值是200,则当所述当前的代理IP的访问数量超过200后时,即侦测到所述当前的代理IP满足了所述预先设置的代理替换条件,则从所述代理IP池中选取出一个代理IP,如此可以有效的解决同一代理IP大量爬取数据时造成的IP受限问题。
105:将选取出的代理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受限问题。
实施例二
图2是本发明实施例二提供的网络爬虫方法的流程图。根据不同的需求,该流程图中的执行顺序可以改变,某些步骤可以省略。
201:将每隔预设时间段获取的多个代理IP存储于预先设置的代理IP池中。
本实施例中的步骤201同实施例一中的步骤101,在此不再详细赘述。
202:对所述代理IP池中的每个代理IP进行逐个验证,判断所获取的代理IP是否具有第一有效性。
本实施例中,将进行第一有效性验证的代理IP称之为待验证的代理IP,使用待验证的代理IP访问搜索引擎(例如,谷歌、百度等)以验证是否得到搜索引擎的响应。如果得到搜索引擎的响应,表明该待验证的代理IP具有第一有效性,如果没有得到搜索引擎的响应,表明该待验证的代理IP不具有第一有效性。所述是否能够得到搜索引擎的响应是指待验证的代理IP能够从所访问的搜索引擎中爬取到数据,即不会被所访问的搜索引擎进行访问限制。
当确定所述代理IP池中的代理IP具有所述第一有效性时,执行步骤203;当确定所述代理IP池中的代理IP不具有所述第一有效性时,执行步骤204。
203:根据代理IP的访问成功率和访问响应时间判断具有所述第一有效性的代理IP是否具有第二有效性。
为了得到更有效的能够完成访问任务的代理IP,可以进一步将代理IP的访问成功率和访问响应时间作为验证所述代理IP是否有效的标准。
所述根据代理IP的访问成功率和访问响应时间判断具有所述第一有效性的代理IP是否具有第二有效性具体包括:
1)使用具有所述第一有效性的代理IP多次访问多个搜索引擎,计算所述具有第一有效性的代理IP的访问成功率及访问响应时间;
所述访问成功率是指在预设的时间周期内访问成功的次数占访问总次数的比例。例如,在1个小时的周期内,具有第一有效性的代理IP访问搜索引擎的总次数为100次,其中,访问成功的次数为97次,访问失败的次数为3次,则计算所述具有第一有效性的代理IP的访问成功率为97/100=97%。
所述访问响应时间是指发出访问请求到接收到访问回应的时间。例如,具有第一有效性的代理IP在9:55:54秒发出访问请求,在9:55:55秒接收到访问回应,则计算所述具有第一有效性的代理IP的访问响应时间为1秒。
2)判断所述具有第一有效性的代理IP的访问成功率是否大于预先设置的访问成功率阈值,同时判断所述具有第一有效性的代理IP的访问响应时间是否小于预先设置的访问响应时间阈值;
所述预先设置的访问成功率阈值可以是,例如,80%。所述预先设置的访问响应时间阈值可以是,例如,1秒。
3)当所述具有第一有效性的代理IP的访问成功率大于所述预先设置的访问成功率阈值且访问响应时间小于所述预先设置的访问响应时间阈值时,确定所述具有第一有效性的代理IP具有第二有效性;当所述具有第一有效性的代理IP的访问成功率小于或等于所述预先设置的访问成功率阈值,或访问响应时间大于或等于所述预先设置的访问响应时间阈值时,确定所述具有第一有效性的代理IP不具有第二有效性。
本实施例中,根据所述待验证的代理IP是否能够访问搜索引擎,在确定能访问搜索引擎时继续根据访问成功率和访问响应时间判断所述待验证的代理IP是否具有更高的有效性,如此不仅能够确定所述代理IP有效,而且还能进一步确定所述待验证的代理IP的质量。访问成功率越大,访问响应时间越快的代理IP对应的质量越好,访问成功率越小,访问响应时间越慢的代理IP对应的质量越差。
当确定具有所述第一有效性的代理IP具有第二有效性时,执行步骤204;当确定具有所述第一有效性的代理IP不具有第二有效性时,执行步骤205。
204:将确定为具有第二有效性的代理IP记录于所述代理IP池中的白名单中。
本实施例中,预先在所述代理IP池中设置一个白名单列表,所述白名单列表用于记录所述代理IP池中被确定为具有第二有效性的代理IP。
在所述白名单中记录代理IP的访问成功率及访问响应时间,目的是为了后续选取代理IP时,能够有针对性的进行选取。例如,优先选取访问成功率越高及/访问响应时间越快的代理IP,能够使得爬取数据的效率更高,爬取到的数据量更多。
进一步地,所述方法还可以包括:根据代理IP的访问成功率及访问响应时间,对代理IP设置多个有效级别,将所述多个有效级别及其对应的代理IP记录于所述白名单中。
所述多个有效级别可以包括,但不限于:第一有效级别、第二有效级别及第三有效级别。第一有效级别对应第一访问成功率及第一响应时间,第二有效级别对应第二访问成功率及第二响应时间,第三有效级别对应第三访问成功率及第三响应时间,以此类推。所述第一有效级别的级别最高,所述第三有效级别的级别最低。本发明对设置的有效级别的数量不作具体限制,可以根据实际需求设置两个或者更多个。
具体地,将访问成功率大于预先设置的第一访问成功率(例如,95%)及访问响应时间大于预先设置的第一访问响应时间(0.5秒)对应的代理IP作为第一有效级别的代理IP;将访问成功率小于预先设置的第一访问成功率但大于预先设置的第二访问成功率阈值(例如,90%),访问响应时间小于预先设置的第一访问响应时间但大于预先设置的第二访问响应(例如,1秒)对应的代理IP作为第二有效级别的代理IP;将访问成功率小于预先设置的第二访问成功率及访问响应时间小于预先设置的第二访问响应时间对应的代理IP作为第三有效级别的代理IP。
本实施例中,根据所述访问成功率及访问响应时间确定代理IP的有效级别,便于后续选取代理IP时,能够快速的从第一有效级别对应的多个代理IP中选取一个代理IP进行数据爬取。
更进一步的,所述方法还可以包括:所述白名单中还记录具有第二有效性的代理IP访问的搜索引擎的类型。
在所述白名单中记录代理IP对应能够访问的搜索引擎的类型,例如,当前代理IP只能访问百度,或者只能访问搜狗,或者当前代理IP能够访问任何一个搜索引擎。
本实施例中,在所述白名单中记录代理IP访问的搜索引擎的类型,是为了后续选取代理IP时,能够根据当前的代理IP访问的搜索引擎的类型进行有针对性的替换代理IP。例如,当前的代理IP正在访问百度,后续需要替换当前的代理IP时,即可根据搜索引擎类型为百度对应的多个代理IP中选取一个代理IP进行数据爬取。
本实施例中,所述白名单列表还记录有所述具有第二有效性的代理IP及其对应的访问成功率、访问响应时间、访问的搜索引擎的类型、获取的时间、访问的次数等。
205:将确定为不具有第一有效性及具有第一有效性但不具有第二有效性的代理IP记录于所述代理IP池中的黑名单中。
本实施例中,预先在所述代理IP池中设置一个黑名单列表,所述黑名单列表用于记录所述代理IP池中被确定为不具有第一有效性及具有第一有效性但不具有第二有效性的代理IP。
进一步地,所述将确定为不具有第一有效性及具有第一有效性但不具有第二有效性的代理IP记录于所述代理IP池中的黑名单中还可以包括:
1)将确定为具有第一有效性但不具有第二有效性的代理IP记录于所述黑名单中的第一黑名单子列表中,将确定为不具有第一有效性的代理IP记录于所述黑名单中的第二黑名单子列表中。
2)使用不具有第一有效性的代理IP多次访问多个搜索引擎,计算不具有第一有效性的代理IP的访问失败率。
3)判断不具有第一有效性的代理IP的访问失败率是否小于预先设置的访问失败率。
所述预先设置的访问失败率阈值可以是,例如,50%。
4)当所述不具有第一有效性的代理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进行逐个验证,可以节省时间。
206:当侦测到当前的代理IP满足预先设置的代理替换条件时,根据预先设置的代理选取规则从所述代理IP池中的所述白名单中选取出一个代理IP。
本实施例中,预先设置代理选取规则,所述预先设置的代理选取规则包括以下一种或多种的组合:
1)根据当前访问的搜索引擎类型从所述白名单中对应所述访问的搜索引擎类型的代理IP中选取;
例如,所述白名单中记录了各个代理IP的访问的搜索引擎类型,若当前访问的搜索引擎为百度时,则从所述白名单中的对应访问百度的代理IP中选取出一个代理IP。
2)根据所述白名单中记录的代理IP的爬取次数进行选取;
例如,所述白名单中记录了各个代理IP的爬取次数,则将各个代理IP的爬取次数进行排序,选取爬取次数少的代理IP。
3)根据所述白名单中记录的代理IP访问的搜索引擎类型的数量进行选取;
例如,所述白名单中记录了各个代理IP的访问的搜索引擎类型,则统计各个代理IP访问的搜索引擎类型的数量,将各个代理IP访问的搜索引擎类型的数量进行排序,则选取访问的搜索引擎类型的数量较大的代理IP。
4)根据所述白名单中记录的代理IP的获取时间进行选取;
例如,所述白名单中记录了各个代理IP的获取时间,则选取最新记录入白名单中的代理IP。
5)延迟预设时间段后选取代理IP。
侦测到当前的代理IP满足所述预先设置的代理替换条件时,延迟预设时间段后,根据上述规则1)至4)从所述白名单中选取出一个代理IP。
207:将选取出的代理IP作为新的代理IP进行数据爬取。
优选地,所述网络爬虫方法还可以包括:提供用户选项,供用户根据实际需要自行添加、删除或者更改。如此能更进一步地及时更新所述白名单列表,保证所述白名单列表中的代理IP都是可用的且有效的代理,消除代理的改变对数据爬取的影响。
优选地,所述网络爬虫方法还可以包括:将多个代理设备useragent进行级联且代理设备之间可相互通讯,每一个代理设备的本地存储器中均存储有预先设置的所述代理IP池,当某一个useragent的访问时间超过预设时间,替换另一个useragent进行数据爬取。
优选地,所述网络爬虫方法还可以包括:将所构造的代理IP池存储于预设设置的服务器中,通过服务器分配IP给代理设备进行数据爬取。所述代理设备可以包括移动设备、web设备等。
优选地,优选地,所述网络爬虫方法还可以包括:注册多个账号,使用同一IP时,可通过切换不同的账号进行数据爬取。
需要说明的是,本发明所提供的从代理IP池中获取IP的过程及多个代理设置useragent爬取数据可同步进行,即在更换代理设备的同时可更换代理IP。
总上所述,本发明所述的网络爬虫方法,能够不断的获取代理IP并实时更新代理IP池,保证代理IP池中的优秀代理足够多;其次,根据代理IP的访问成功率和访问响应时间进一步确定代理IP是否具有第二有效性,以此确定代理IP的有效性程度;第三,针对确定为具有第二有效性的代理IP还进一步地细分了有效级别;第四,对于首次访问失败的代理IP,还进行多次验证,进一步细分为永久无效和暂时无效,可以避免代理IP的浪费。不仅能够有效地解决同一代理IP在长时间、多次快速、大量爬取数据的过程中的IP受限问题,还能保证选取出最有效的代理IP进行数据爬取。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
下面结合第3至5图,分别对实现上述网络爬虫方法的终端的功能模块及硬件结构进行介绍。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
实施例三
图3为本发明网络爬虫装置较佳实施例中的功能模块图。
在一些实施例中,所述网络爬虫装置30运行于终端中。所述网络爬虫装置30可以包括多个由程序代码段所组成的功能模块。所述网络爬虫装置30中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行(详见图1及其相关描述)对手部区域的跟踪。
本实施例中,所述终端的网络爬虫装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:存储模块301、判断模块302、记录模块303、选取模块304及爬取模块305。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在所述存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
存储模块301,用于将每隔预设时间段获取的多个代理IP存储于预先设置的代理IP池中。
本实施例中,在本地数据库中预先设置一个代理IP池,将所获取的多个代理IP添加到该代理IP池中,以供爬虫使用。可以在互联网上提供的代理IP的网站站点中找到代理IP,具体的列表可以通过人工方式或另外的小爬虫自动获取。也可以通过第三方服务机构购买多个代理IP,并将所获取的代理IP添加到预先设置的代理IP池中。
本实施例中,所述代理IP的代理信息可以包括,但不限于:IP地址、名称及所述端口。
本实施例中,可以每隔预设时间段,例如,每隔一天,一周等,通过人工或另外的小爬虫自动在互联网上提供的代理IP的网站站点中获取代理IP或者通过第三方服务机构购买多个代理IP的方式获取代理IP,并将所获取的代理IP存储于所述代理IP池中,如此可以保证所述代理池中的IP的数量足够多,且不间断的获取代理IP,可以更新所述代理IP池,供爬虫使用。
判断模块302,用于对所述代理IP池中的每个代理IP进行逐个验证,判断所获取的代理IP的有效性。
本实施例中,将进行有效性验证的代理IP称之为待验证的代理IP,使用待验证的代理IP首次访问搜索引擎(例如,谷歌、百度等)以验证是否得到搜索引擎的响应。如果首次访问得到搜索引擎的响应,表明该待验证的代理IP有效,如果首次访问没有得到搜索引擎的响应,表明该待验证的代理IP无效。所述是否能够得到搜索引擎的响应是指待验证的代理IP首次能够从所访问的搜索引擎中爬取到数据,即不会被所访问的搜索引擎进行首次访问限制。
记录模块303,用于将确定为有效的代理IP记录于所述代理IP池中的白名单中,将确定为无效的代理IP记录于所述代理IP池中的黑名单中。
本实施例中,预先在所述代理IP池中设置一个白名单列表和一个黑名单列表。所述白名单列表用于记录所述代理IP池中被确定为有效的代理IP,所述黑名单列表用于记录所述代理IP池中被确定为无效的代理IP。
选取模块304,用于当侦测到当前的代理IP满足预先设置的代理替换条件时,从所述代理IP池中的所述白名单中选取出一个代理IP。
本实施例中,预先设置代理替换条件,当侦测到当前的代理IP满足预先设置的代理替换条件时,从所述代理IP池中的所述白名单中选取出一个代理IP。
本实施例中,所述当前的代理IP满足预先设置的代理替换条件包括以下一种或多种的组合:
1)当前的代理IP的访问时间超过预先设置的访问时间阈值;
所述预先设置的访问时间阈值可以是10分钟,则当所述当前的代理IP的访问时间超过10分钟时,即侦测到所述当前的代理IP满足了所述预先设置的代理替换条件,则从所述代理IP池中选取出一个代理IP,如此能够有效地解决同一代理IP长时间爬取数据时造成的IP受限问题。
2)当前的代理IP的访问频率超过预先设置的访问频率阈值;
所述预先设置的访问频率阈值可以是100次/秒,则当所述当前的代理IP的访问频率超过100次/秒时,即侦测到所述当前的代理IP满足了所述预先设置的代理替换条件,则从所述代理IP池中选取出一个代理IP,如此能够有效地解决同一代理IP多次快速爬取数据时造成的IP受限问题。
3)当前的代理IP的访问数量超过预先设置的访问数量阈值;
所述预先设置的访问数量阈值是200,则当所述当前的代理IP的访问数量超过200后时,即侦测到所述当前的代理IP满足了所述预先设置的代理替换条件,则从所述代理IP池中选取出一个代理IP,如此可以有效的解决同一代理IP大量爬取数据时造成的IP受限问题。
爬取模块305,用于将选取出的代理IP作为新的代理IP进行数据爬取。
本实施例中,将当前的代理IP替换为从所述代理IP池中的所述白名单中选取出的代理IP,所选取出的代理IP作为新的代理IP进行数据爬取。只要当前的代理IP在爬取数据的过程中满足所述预先设置的代理替换条件时,即可自动进行代理IP的替换,从而可以免去人工频繁替换的麻烦,爬取效率更高。
综上所述,本发明所述的网络爬虫装置30,存储模块301将获取的多个代理IP存储于预先设置的代理IP池中;判断模块302对所述代理IP池中的每个代理IP进行逐个验证,判断所获取的代理IP的有效性;记录模块303将确定为有效的代理IP记录于所述代理IP池中的白名单中,将确定为无效的代理IP记录于所述代理IP池中的黑名单中;选取模块304侦测到当前的代理IP满足预先设置的代理替换条件时,从所述代理IP池中的所述白名单中选取出一个代理IP;爬取模块305将选取出的代理IP作为新的代理IP进行数据爬取。能够有效地解决同一代理IP在长时间、多次快速、大量爬取数据的过程中的IP受限问题。
实施例四
图4为本发明网络爬虫装置的较佳实施例中的功能模块图。
在一些实施例中,所述网络爬虫装置40运行于终端中。所述网络爬虫装置40可以包括多个由程序代码段所组成的功能模块。所述网络爬虫装置40中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行(详见图2及其相关描述)对网络爬虫的防止。
本实施例中,所述终端的网络爬虫装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:存储模块401、第一判断模块402、第二判断模块403、第一记录模块404、第二记录模块405、选取模块406及爬取模块407。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在所述存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
存储模块401,用于将每隔预设时间段获取的多个代理IP存储于预先设置的代理IP池中。
本实施例中,可以每隔预设时间段,例如,每隔一天,一周等,通过人工或另外的小爬虫自动在互联网上提供的代理IP的网站站点中获取代理IP或者通过第三方服务机构购买多个代理IP的方式获取代理IP,并将所获取的代理IP存储于所述代理IP池中,如此可以保证所述代理池中的IP的数量足够多,且不间断的获取代理IP,可以更新所述代理IP池,供爬虫使用。
第一判断模块402,用于对所述代理IP池中的每个代理IP进行逐个验证,判断所获取的代理IP是否具有第一有效性。
本实施例中,将进行第一有效性验证的代理IP称之为待验证的代理IP,使用待验证的代理IP访问搜索引擎(例如,谷歌、百度等)以验证是否得到搜索引擎的响应。如果得到搜索引擎的响应,表明该待验证的代理IP具有第一有效性,如果没有得到搜索引擎的响应,表明该待验证的代理IP不具有第一有效性。所述是否能够得到搜索引擎的响应是指待验证的代理IP能够从所访问的搜索引擎中爬取到数据,即不会被所访问的搜索引擎进行访问限制。
第二判断模块403,用于当所述第一判断模块402确定所述代理IP池中的代理IP具有所述第一有效性时,根据代理IP的访问成功率和访问响应时间判断具有所述第一有效性的代理IP是否具有第二有效性。
为了得到更有效的能够完成访问任务的代理IP,可以进一步将代理IP的访问成功率和访问响应时间作为验证所述代理IP是否有效的标准。
所述第二判断模块403根据代理IP的访问成功率和访问响应时间判断具有所述第一有效性的代理IP是否具有第二有效性具体包括:
1)使用具有所述第一有效性的代理IP多次访问多个搜索引擎,计算所述具有第一有效性的代理IP的访问成功率及访问响应时间;
所述访问成功率是指在预设的时间周期内访问成功的次数占访问总次数的比例。例如,在1个小时的周期内,具有第一有效性的代理IP访问搜索引擎的总次数为100次,其中,访问成功的次数为97次,访问失败的次数为3次,则计算所述具有第一有效性的代理IP的访问成功率为97/100=97%。
所述访问响应时间是指发出访问请求到接收到访问回应的时间。例如,具有第一有效性的代理IP在9:55:54秒发出访问请求,在9:55:55秒接收到访问回应,则计算所述具有第一有效性的代理IP的访问响应时间为1秒。
2)判断所述具有第一有效性的代理IP的访问成功率是否大于预先设置的访问成功率阈值,同时判断所述具有第一有效性的代理IP的访问响应时间是否小于预先设置的访问响应时间阈值;
所述预先设置的访问成功率阈值可以是,例如,80%。所述预先设置的访问响应时间阈值可以是,例如,1秒。
3)当所述具有第一有效性的代理IP的访问成功率大于所述预先设置的访问成功率阈值且访问响应时间小于所述预先设置的访问响应时间阈值时,确定所述具有第一有效性的代理IP具有第二有效性;当所述具有第一有效性的代理IP的访问成功率小于或等于所述预先设置的访问成功率阈值,或访问响应时间大于或等于所述预先设置的访问响应时间阈值时,确定所述具有第一有效性的代理IP不具有第二有效性。
本实施例中,根据所述待验证的代理IP是否能够访问搜索引擎,在确定能访问搜索引擎时继续根据访问成功率和访问响应时间判断所述待验证的代理IP是否具有更高的有效性,如此不仅能够确定所述代理IP有效,而且还能进一步确定所述待验证的代理IP的质量。访问成功率越大,访问响应时间越快的代理IP对应的质量越好,访问成功率越小,访问响应时间越慢的代理IP对应的质量越差。
第一记录模块404,用于将确定为具有第二有效性的代理IP记录于所述代理IP池中的白名单中。
本实施例中,预先在所述代理IP池中设置一个白名单列表,所述白名单列表用于记录所述代理IP池中被确定为具有第二有效性的代理IP。
在所述白名单中记录代理IP的访问成功率及访问响应时间,目的是为了后续选取代理IP时,能够有针对性的进行选取。例如,优先选取访问成功率越高及/访问响应时间越快的代理IP,能够使得爬取数据的效率更高,爬取到的数据量更多。
进一步地,所述第一记录模块404还用于根据代理IP的访问成功率及访问响应时间,对代理IP设置多个有效级别,将所述多个有效级别及其对应的代理IP记录于所述白名单中。
所述多个有效级别可以包括,但不限于:第一有效级别、第二有效级别及第三有效级别。第一有效级别对应第一访问成功率及第一响应时间,第二有效级别对应第二访问成功率及第二响应时间,第三有效级别对应第三访问成功率及第三响应时间,以此类推。所述第一有效级别的级别最高,所述第三有效级别的级别最低。本发明对设置的有效级别的数量不作具体限制,可以根据实际需求设置两个或者更多个。
具体地,将访问成功率大于预先设置的第一访问成功率(例如,95%)及访问响应时间大于预先设置的第一访问响应时间(0.5秒)对应的代理IP作为第一有效级别的代理IP;将访问成功率小于预先设置的第一访问成功率但大于预先设置的第二访问成功率阈值(例如,90%),访问响应时间小于预先设置的第一访问响应时间但大于预先设置的第二访问响应(例如,1秒)对应的代理IP作为第二有效级别的代理IP;将访问成功率小于预先设置的第二访问成功率及访问响应时间小于预先设置的第二访问响应时间对应的代理IP作为第三有效级别的代理IP。
本实施例中,根据所述访问成功率及访问响应时间确定代理IP的有效级别,便于后续选取代理IP时,能够快速的从第一有效级别对应的多个代理IP中选取一个代理IP进行数据爬取。
更进一步的,所述所述第一记录模块404还用于将具有第二有效性的代理IP访问的搜索引擎的类型记录于所述白名单中。
在所述白名单中记录代理IP对应能够访问的搜索引擎的类型,例如,当前代理IP只能访问百度,或者只能访问搜狗,或者当前代理IP能够访问任何一个搜索引擎。
本实施例中,在所述白名单中记录代理IP访问的搜索引擎的类型,是为了后续选取代理IP时,能够根据当前的代理IP访问的搜索引擎的类型进行有针对性的替换代理IP。例如,当前的代理IP正在访问百度,后续需要替换当前的代理IP时,即可根据搜索引擎类型为百度对应的多个代理IP中选取一个代理IP进行数据爬取。
本实施例中,所述白名单列表还记录有所述具有第二有效性的代理IP及其对应的访问成功率、访问响应时间、访问的搜索引擎的类型、获取的时间、访问的次数等。
第二记录模块405,用于将确定为不具有第一有效性及具有第一有效性但不具有第二有效性的代理IP记录于所述代理IP池中的黑名单中。
本实施例中,预先在所述代理IP池中设置一个黑名单列表,所述黑名单列表用于记录所述代理IP池中被确定为不具有第一有效性及具有第一有效性但不具有第二有效性的代理IP。
进一步地,所述第二记录模块405将确定为不具有第一有效性及具有第一有效性但不具有第二有效性的代理IP记录于所述代理IP池中的黑名单中还可以包括:
1)将确定为具有第一有效性但不具有第二有效性的代理IP记录于所述黑名单中的第一黑名单子列表中,将确定为不具有第一有效性的代理IP记录于所述黑名单中的第二黑名单子列表中。
2)使用不具有第一有效性的代理IP多次访问多个搜索引擎,计算不具有第一有效性的代理IP的访问失败率。
3)判断不具有第一有效性的代理IP的访问失败率是否小于预先设置的访问失败率。
所述预先设置的访问失败率阈值可以是,例如,50%。
4)当所述不具有第一有效性的代理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进行逐个验证,可以节省时间。
选取模块406,用于当侦测到当前的代理IP满足预先设置的代理替换条件时,根据预先设置的代理选取规则从所述代理IP池中的所述白名单中选取出一个代理IP。
本实施例中,预先设置代理选取规则,所述预先设置的代理选取规则包括以下一种或多种的组合:
1)根据当前访问的搜索引擎类型从所述白名单中对应所述访问的搜索引擎类型的代理IP中选取;
例如,所述白名单中记录了各个代理IP的访问的搜索引擎类型,若当前访问的搜索引擎为百度时,则从所述白名单中的对应访问百度的代理IP中选取出一个代理IP。
2)根据所述白名单中记录的代理IP的爬取次数进行选取;
例如,所述白名单中记录了各个代理IP的爬取次数,则将各个代理IP的爬取次数进行排序,选取爬取次数少的代理IP。
3)根据所述白名单中记录的代理IP访问的搜索引擎类型的数量进行选取;
例如,所述白名单中记录了各个代理IP的访问的搜索引擎类型,则统计各个代理IP访问的搜索引擎类型的数量,将各个代理IP访问的搜索引擎类型的数量进行排序,则选取访问的搜索引擎类型的数量较大的代理IP。
4)根据所述白名单中记录的代理IP的获取时间进行选取;
例如,所述白名单中记录了各个代理IP的获取时间,则选取最新记录入白名单中的代理IP。
5)延迟预设时间段后选取代理IP。
侦测到当前的代理IP满足所述预先设置的代理替换条件时,延迟预设时间段后,根据上述规则1)至4)从所述白名单中选取出一个代理IP。
爬取模块407,用于将选取出的代理IP作为新的代理IP进行数据爬取。
优选地,所述白名单列表还可提供用户选项,供用户根据实际需要自行添加、删除或者更改,如此能更进一步地及时更新所述白名单列表,保证所述白名单列表中的代理IP都是可用的且有效的代理,消除代理的改变对数据爬取的影响。
总上所述,本发明所述的网络爬虫装置40,能够不断的获取代理IP并实时更新代理IP池,保证代理IP池中的优秀代理足够多;其次,根据代理IP的访问成功率和访问响应时间进一步确定代理IP是否具有第二有效性,以此确定代理IP的有效性程度;第三,针对确定为具有第二有效性的代理IP还进一步地细分了有效级别;第四,对于首次访问失败的代理IP,还进行多次验证,进一步细分为永久无效和暂时无效,可以避免代理IP的浪费。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,双屏设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
实施例五
图5为本发明实施例五提供的终端的示意图。
所述终端5包括:存储器51、至少一个处理器52、存储在所述存储器51中并可在所述至少一个处理器52上运行的计算机程序53及至少一条通讯总线54。
所述至少一个处理器52执行所述计算机程序53时实现上述网络爬虫方法实施例中的步骤。
示例性的,所述计算机程序53可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述至少一个处理器52执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序53在所述终端5中的执行过程。
所述终端5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图5仅仅是终端5的示例,并不构成对终端5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端5还可以包括输入输出设备、网络接入设备、总线等。
所述至少一个处理器52可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器52可以是微处理器或者该处理器52也可以是任何常规的处理器等,所述处理器52是所述终端5的控制中心,利用各种接口和线路连接整个终端5的各个部分。
所述存储器51可用于存储所述计算机程序53和/或模块/单元,所述处理器52通过运行或执行存储在所述存储器51内的计算机程序和/或模块/单元,以及调用存储在存储器51内的数据,实现所述终端5的各种功能。所述存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端5的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述终端5集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。

Claims (9)

1.一种网络爬虫方法,其特征在于,所述方法包括:
将每隔预设时间段获取的多个代理IP存储于预先设置的代理IP池中;
对所述代理IP池中的每个代理IP进行逐个验证,当验证代理IP首次访问搜索引擎得到所述搜索引擎的响应时,确定所验证的代理IP具有第一有效性,当验证代理IP首次访问搜索引擎没有得到所述搜索引擎的响应时,确定所验证的代理IP不具有第一有效性,根据代理IP的访问成功率和访问响应时间判断具有所述第一有效性的代理IP是否具有第二有效性;
将确定具有所述第二有效性的代理IP记录于所述代理IP池中的白名单中,将确定不具有所述第一有效性及具有所述第一有效性但不具有所述第二有效性的代理IP记录于所述代理IP池中的黑名单中,所述白名单中还记录具有所述第二有效性的代理IP访问的搜索引擎的类型;
当侦测到当前的代理IP满足预先设置的代理替换条件时,根据当前访问的搜索引擎类型从所述代理IP池中的所述白名单中对应所述访问的搜索引擎类型的代理IP中选取出一个代理IP;及
将选取出的代理IP作为新的代理IP进行数据爬取。
2.如权利要求1所述的方法,其特征在于,所述根据代理IP的访问成功率和访问响应时间判断具有所述第一有效性的代理IP是否具有第二有效性包括:
使用具有所述第一有效性的代理IP多次访问多个搜索引擎,计算所述具有第一有效性的代理IP的访问成功率及访问响应时间;
判断所述具有第一有效性的代理IP的访问成功率是否大于预先设置的访问成功率阈值,同时判断所述具有第一有效性的代理IP的访问响应时间是否小于预先设置的访问响应时间阈值;
当所述具有第一有效性的代理IP的访问成功率大于所述预先设置的访问成功率阈值且访问响应时间小于所述预先设置的访问响应时间阈值时,确定所述具有第一有效性的代理IP具有第二有效性;
当所述具有第一有效性的代理IP的访问成功率小于或等于所述预先设置的访问成功率阈值,或访问响应时间大于或等于所述预先设置的访问响应时间阈值时,确定所述具有第一有效性的代理IP不具有第二有效性。
3.如权利要求1所述的方法,其特征在于,所述将确定不具有第一有效性及具有所述第一有效性但不具有所述第二有效性的代理IP记录于所述代理IP池中的黑名单中包括:
将确定具有所述第一有效性但不具有所述第二有效性的代理IP记录于所述黑名单中的第一黑名单子列表中,将确定不具有所述第一有效性的代理IP记录于所述黑名单中的第二黑名单子列表中;
使用不具有所述第一有效性的代理IP多次访问多个搜索引擎,计算不具有所述第一有效性的代理IP的访问失败率;
判断不具有所述第一有效性的代理IP的访问失败率是否小于预先设置的访问失败率;
当不具有所述第一有效性的代理IP的访问失败率小于所述预先设置的访问失败率时,将对应的不具有所述第一有效性的代理IP确认为暂时无效的代理IP,并记录于所述第一黑名单子列表中;或
当不具有所述第一有效性的代理IP的访问失败率大于所述预先设置的访问失败率时,将对应的不具有所述第一有效性的代理IP确认为永久无效的代理IP,并记录于所述第二黑名单子列表中。
4.如权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:
根据代理IP的访问成功率及访问响应时间,对代理IP设置多个有效级别,将所述多个有效级别及其对应的代理IP记录于所述白名单中。
5.如权利要求4所述的方法,其特征在于,所述对代理IP设置多个有效级别包括:
将访问成功率大于预先设置的第一访问成功率及访问响应时间大于预先设置的第一访问响应时间对应的代理IP作为第一有效级别的代理IP;
将访问成功率小于预先设置的第一访问成功率但大于预先设置的第二访问成功率阈值,访问响应时间小于预先设置的第一访问响应时间但大于预先设置的第二访问响应对应的代理IP作为第二有效级别的代理IP;
将访问成功率小于预先设置的第二访问成功率及访问响应时间小于预先设置的第二访问响应时间对应的代理IP作为第三有效级别的代理IP。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:根据预先设置的代理选取规则从所述代理IP池中的所述白名单中选取出一个代理IP,所述预先设置的代理选取规则包括以下一种或多种的组合:根据所述白名单中记录的代理IP的爬取次数进行选取;根据所述白名单中记录的代理IP访问的搜索引擎类型的数量进行选取;根据所述白名单中记录的代理IP的获取时间进行选取;延迟预设时间段后选取代理IP。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
对所述白名单列表提供用户选项,根据用户的添加、删除或更改操作更新所述白名单列表。
8.一种终端,其特征在于,所述终端包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述的网络爬虫方法。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的网络爬虫方法。
CN201810349987.6A 2018-04-18 2018-04-18 网络爬虫方法、终端及存储介质 Active CN108551452B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810349987.6A CN108551452B (zh) 2018-04-18 2018-04-18 网络爬虫方法、终端及存储介质
PCT/CN2018/100162 WO2019200784A1 (zh) 2018-04-18 2018-08-13 网络爬虫方法、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810349987.6A CN108551452B (zh) 2018-04-18 2018-04-18 网络爬虫方法、终端及存储介质

Publications (2)

Publication Number Publication Date
CN108551452A CN108551452A (zh) 2018-09-18
CN108551452B true CN108551452B (zh) 2021-01-08

Family

ID=63515403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810349987.6A Active CN108551452B (zh) 2018-04-18 2018-04-18 网络爬虫方法、终端及存储介质

Country Status (2)

Country Link
CN (1) CN108551452B (zh)
WO (1) WO2019200784A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
EP4311204A3 (en) 2017-08-28 2024-04-10 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
CN109413153B (zh) * 2018-09-26 2022-09-02 深圳壹账通智能科技有限公司 数据爬取方法、装置、计算机设备和存储介质
CN111355693B (zh) * 2018-12-24 2023-10-31 北京奇虎科技有限公司 代理服务的实现方法、装置、电子设备和存储介质
CN109815385A (zh) * 2019-01-31 2019-05-28 无锡火球普惠信息科技有限公司 基于app客户端的爬虫及爬取方法
CN109948026A (zh) * 2019-03-28 2019-06-28 深信服科技股份有限公司 一种网页数据爬取方法、装置、设备及介质
EP4030318A1 (en) 2019-04-02 2022-07-20 Bright Data Ltd. System and method for managing non-direct url fetching service
CN110147271B (zh) * 2019-05-15 2020-04-28 重庆八戒传媒有限公司 提升爬虫代理质量的方法、装置及计算机可读存储介质
CN110287395A (zh) * 2019-07-01 2019-09-27 杭州安恒信息技术股份有限公司 一种爬虫方法、装置、系统、设备及可读存储介质
CN110677510A (zh) * 2019-09-11 2020-01-10 苏州朗动网络科技有限公司 Ip代理池的管理方法、设备和存储介质
US10637956B1 (en) 2019-10-01 2020-04-28 Metacluster It, Uab Smart proxy rotator
CN110798470B (zh) * 2019-10-31 2022-08-23 北京金堤科技有限公司 代理ip地址管理方法及系统
CN111683163A (zh) * 2020-06-11 2020-09-18 杭州安恒信息技术股份有限公司 代理ip地址分配方法、装置、计算机设备和可读存储介质
CN113422777B (zh) * 2021-06-28 2022-08-19 安天科技集团股份有限公司 基于白名单的渗透测试方法、装置、计算设备及存储介质
CN113836355A (zh) * 2021-10-20 2021-12-24 盐城金堤科技有限公司 视频推荐方法及其装置、计算机存储介质、电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581328A (zh) * 2013-11-14 2014-02-12 广州品唯软件有限公司 产品属性数据的获取方法和系统
CN103902386A (zh) * 2014-04-11 2014-07-02 复旦大学 一种基于连接代理优化管理的多线程网络爬虫处理方法
CN106534244A (zh) * 2015-09-14 2017-03-22 中国移动通信集团公司 一种代理资源的调度方法及装置
CN106547793A (zh) * 2015-09-22 2017-03-29 北京国双科技有限公司 获取代理服务器地址的方法和装置
CN107169006A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种管理爬虫代理的方法及装置
CN107395782A (zh) * 2017-07-19 2017-11-24 北京理工大学 一种基于代理池的ip限制受控源信息抓取方法
CN107635026A (zh) * 2017-09-26 2018-01-26 马上消费金融股份有限公司 一种获取ip的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953868B2 (en) * 2007-01-31 2011-05-31 International Business Machines Corporation Method and system for preventing web crawling detection
CN104506525B (zh) * 2014-12-22 2018-04-20 北京奇安信科技有限公司 防止恶意抓取的方法和防护装置
CN105426415A (zh) * 2015-10-30 2016-03-23 Tcl集团股份有限公司 网站访问请求的管理方法、装置及系统
CN105827619B (zh) * 2016-04-25 2019-02-15 无锡中科富农物联科技有限公司 高访问情况下的爬虫封禁方法
CN106210050A (zh) * 2016-07-12 2016-12-07 安徽天达网络科技有限公司 一种智能反屏蔽网络爬虫系统
CN106776983B (zh) * 2016-12-06 2019-03-26 深圳市小满科技有限公司 搜索引擎优化装置和方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581328A (zh) * 2013-11-14 2014-02-12 广州品唯软件有限公司 产品属性数据的获取方法和系统
CN103902386A (zh) * 2014-04-11 2014-07-02 复旦大学 一种基于连接代理优化管理的多线程网络爬虫处理方法
CN106534244A (zh) * 2015-09-14 2017-03-22 中国移动通信集团公司 一种代理资源的调度方法及装置
CN106547793A (zh) * 2015-09-22 2017-03-29 北京国双科技有限公司 获取代理服务器地址的方法和装置
CN107169006A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种管理爬虫代理的方法及装置
CN107395782A (zh) * 2017-07-19 2017-11-24 北京理工大学 一种基于代理池的ip限制受控源信息抓取方法
CN107635026A (zh) * 2017-09-26 2018-01-26 马上消费金融股份有限公司 一种获取ip的方法及装置

Also Published As

Publication number Publication date
WO2019200784A1 (zh) 2019-10-24
CN108551452A (zh) 2018-09-18

Similar Documents

Publication Publication Date Title
CN108551452B (zh) 网络爬虫方法、终端及存储介质
CN111629051B (zh) 一种用于工业互联网标识解析系统的性能优化方法及装置
US8949234B2 (en) Processor engine, integrated circuit and method therefor
CN109937564B (zh) 用于检测分布式计算系统中的欺诈性帐户使用的方法和设备
CN110213234B (zh) 应用程序文件的开发者识别方法、装置、设备及存储介质
US10362052B2 (en) Generating a virtual database to test data security of a real database
EP2318955A1 (en) System and method for dynamic and real-time categorization of webpages
CN113591068B (zh) 一种在线登录设备管理方法、装置及电子设备
CN114363036A (zh) 一种网络攻击路径获取方法、装置及电子设备
CN111212031A (zh) 一种接口访问频率的控制方法、装置、电子设备和存储介质
CN111090449A (zh) Api服务的访问方法、装置及电子设备
CN115238247A (zh) 基于零信任数据访问控制系统的数据处理方法
US8364776B1 (en) Method and system for employing user input for website classification
CN111857781B (zh) 资源更新方法及相关设备
CN111309264A (zh) 一种使目录配额兼容快照的方法、系统、设备及介质
CN116233254A (zh) 业务切流方法、装置、计算机设备和存储介质
CN113918776B (zh) 数据缓存方法、装置及电子设备及数据查询方法
US11989294B2 (en) Detecting and preventing installation and execution of malicious browser extensions
US11416468B2 (en) Active-active system index management
CN112291241A (zh) 防火墙开墙方法、防火墙开墙装置及终端设备
CN112261168A (zh) 一种多ip端口段用户信息查找方法、终端设备及存储介质
US20170154096A1 (en) Data service system and electronic apparatus
CN113434153B (zh) 一种应用安装的归因方法和装置
KR102116318B1 (ko) 인터넷 접속을 위한 블록체인 접속정보 시스템
Miramirkhani Methodologies and tools to study malicious ecosystems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant