一种多网站并行爬取的IP代理池的构建系统和方法与流程

文档序号:29137026发布日期:2022-03-05 02:06阅读:179来源:国知局
一种多网站并行爬取的IP代理池的构建系统和方法与流程
一种多网站并行爬取的ip代理池的构建系统和方法
技术领域
1.本发明属于ip代理技术领域,具体涉及一种多网站并行爬取的ip代理池的构建系统和方法。


背景技术:

2.随着大数据时代的来临,网络爬虫在互联网中的地位将越来越重要。互联网中的数据是海量的,如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是一个重要的问题,而爬虫技术就是为了解决这些问题而生的。当下大数据分析、数据挖掘以及人工智能领域的自然语言处理等技术不断发展,这些技术得以飞速发展的前提就是要有数据,而且是高质量的数据。网络爬虫不仅仅解决了数据提取,更从无章可循的网页中提取出结构化数据,这些对上述技术的突破性进展起到了举足轻重的影响。
3.传统的爬虫代理方式通常采用一个代理ip进行一对多爬取访问,当时应对多网站并行深度爬取时,容易出现ip代理被封、访问速率慢、访问失败重试、代理池资源调度不合理等问题。解决这些问题可以通过减少相同ip的访问频次、增加适用于不同网站的代理ip池来解决。
4.因此,针对以上不足,本发明急需提供一种多网站并行爬取的ip代理池的构建系统和方法。


技术实现要素:

5.本发明的目的在于提供一种多网站并行爬取的ip代理池的构建系统和方法,以解决现有技术中单一代理ip爬取多个网站时存在爬取失败和被目标网站封禁的问题。
6.本发明提供的多网站并行爬取的ip代理池的构建系统,包括:ip验证模块,用于对初始ip集合内的代理ip进行代理可用性验证,并将可用的代理ip置入有效队列中,得到有效ip集合;ip标记模块,用于对ip验证模块得到的有效ip集合内的代理ip进行逐一标记,得到具有标记信息的标记ip集合;ip组合模块,用于获取若干待爬取网站信息并为每个所述待爬取网站构建对应的网站代理ip队列,还用于基于待爬取网站信息在ip标记模块得到的标记ip集合中挑取标记信息与其匹配的代理ip,并将挑取的代理ip置入与其匹配的网站代理ip队列中。
7.如上所述的多网站并行爬取的ip代理池的构建系统,进一步优选为,还包括网站爬取模块,用于获取待爬取网站信息并调用ip组合模块得到的对应的网站代理ip队列,并通过网站代理ip队列中的代理ip爬取网站,得到网站信息。
8.如上所述的多网站并行爬取的ip代理池的构建系统,进一步优选为,还包括队列维护模块,所述队列维护模块用于监控所述网站爬取模块,并将爬取成功的代理ip置于网站代理ip队列的队尾,将爬取失败的代理ip放入初始ip集合内。
9.如上所述的多网站并行爬取的ip代理池的构建系统,进一步优选为,所述队列维护模块还用于监控网站代理ip队列,并在网站代理ip队列中的代理ip数量小于预设数额
时,在所述标记ip集合中挑取标记信息与其匹配的代理ip加入到所述网站代理ip队列中。
10.如上所述的多网站并行爬取的ip代理池的构建系统,进一步优选为,还包括定时验证模块,所述定时验证模块用于定时验证标记ip集合内代理ip的可用性,并将可用性验证不通过的代理ip剔除到初始ip集合中。
11.如上所述的多网站并行爬取的ip代理池的构建系统,进一步优选为,还包括ip评分模块,所述ip评分模块用于根据可用性验证结果、标记信息以及爬取结果为所述代理ip评分,所述有效队列和所述网站代理ip队列中的代理ip根据评分列队排列。
12.如上所述的多网站并行爬取的ip代理池的构建系统,进一步优选为,所述网站爬取模块还用于在代理ip初次爬取目标网站失败时,重试爬取,且每次重试爬取的时间较上次爬取递增。
13.本发明还公开了多网站并行爬取的ip代理池的构建方法,包括以下步骤:
14.步骤1:对初始ip集合内的代理ip进行代理可用性验证,并将可用的代理ip置入有效队列中,得到有效ip集合;步骤2:对步骤1得到的有效ip集合内的代理ip进行逐一标记,得到具有标记信息的标记ip集合;步骤3:获取多个待爬取网站信息并为每个所述待爬取网站构建对应的网站代理ip队列,基于待爬取网站信息在步骤2得到的标记ip集合中挑取标记信息与其匹配的代理ip,并将挑取的代理ip置入与其匹配的网站代理ip队列中,得到多网站并行爬取的ip代理池。
15.如上所述的多网站并行爬取的ip代理池的构建方法,进一步优选为,还包括步骤4:监控所述网站代理ip队列中代理ip的爬取状态,并将爬取成功的代理ip置于网站代理ip队列的队尾,将爬取失败的代理ip放入初始ip集合内;监控网站代理ip队列,并在网站代理ip队列中的代理ip数量小于预设数额时,在所述标记ip集合中挑取标记信息与其匹配的代理ip加入到所述网站代理ip队列中。
16.如上所述的多网站并行爬取的ip代理池的构建方法,进一步优选为,还包括步骤5:定期验证标记ip集合内代理ip的可用性,并在可用性验证不通过的代理ip剔除到初始ip集合中。
17.本发明与现有技术相比具有以下的优点:
18.本发明所公开的用于多网站并行爬取的ip代理池包括ip验证模块、ip标记模块和ip组合模块,其中ip验证模块用于代理ip的可用性验证,进而筛选出可用的代理ip;ip标记模块用于代理ip的信息标记,从而得到具有标记信息的标记ip集合,进而便于有选择地筛选代理ip;ip组合模块用于获取待爬取网站信息并为其构建网站代理ip队列,同时还用于根据待爬取网站信息从标记ip集合内挑取标记信息与待爬取网站信息相匹配的代理ip,并将挑选的代理ip置入对应的网站代理ip队列中。通过上述方法,实现了代理ip的收集、筛选、标记并列队组合,使得每个待爬取网站均具有一个对应的网站代理ip队列,且不同网站代理ip队列中的代理ip不相同,进而实现多网站并行爬取,且避免同时进行多网站内容爬取时,单一的代理ip爬取失败或被目标网站封禁的问题,进而提高代理ip的利用率以及爬取成功率。
19.本发明还通过设置队列维护模块,实现对网站爬取模块和网站代理ip队列的监控,进而实时掌控代理ip的爬取使用信息和网站代理ip列队中代理ip的数量信息,进而实现失效代理ip的清理和新代理ip的补充,进而使网站代理ip队列实现动态平衡。
20.本发明还通过设置定时验证模块定时验证标记ip集合内代理ip的可用性,从而保证标记ip集合内的代理ip处于可用状态,避免标记ip集合内的代理ip失效。
附图说明
21.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明中用于多网站并行爬取的ip代理池的构建方法流程图;
23.图2为本发明中用于多网站并行爬取的ip代理池的结构连接图。
具体实施方式
24.实施例1:
25.如图1所示,本实施例公开了多网站并行爬取的ip代理池的构建方法,包括:
26.步骤1:对初始ip集合内的代理ip进行代理可用性验证,并将可用的代理ip置入有效队列中,得到有效ip集合;
27.步骤2:对步骤1得到的有效ip集合内的代理ip进行逐一标记,得到具有标记信息的标记ip集合;
28.步骤3:获取多个待爬取网站信息并为每个所述待爬取网站构建对应的网站代理ip队列,基于待爬取网站信息在步骤2得到的标记ip集合中挑取标记信息与其匹配的代理ip,并将挑取的代理ip置入与其匹配的中,得到多网站并行爬取的ip代理池。
29.上述方法中,通过步骤1在初始ip集合中筛选出可用代理ip,具体的,获取的代理ip被导入到redis中待验证队列,并使用zset数据类型存储,形成初始ip集合。然后对初始ip集合内的代理ip逐一进行可行性验证,判断代理ip是否可用;具体的,通过使用代理ip访问目标网站(本实施例中的目标网站为http://httpbin.org/get),并根据返回状态码来判断代理ip是否可用,并将可用的代理ip置入有效队列中,得到有效ip集合。其中,可行性验证主要通过线程池实现,首先初始化验证代理线程池,即根据系统资源、网络带宽动态调整最大线程数,保证线程池的运行为最优状态,从而提高验证代理的速度和系统整体的运行状况;其次,线程池中每个线程从待验证队列获取代理数据并开始上述验证。
30.上述方法中,通过步骤2实现对可用的代理ip的标记,从而得到具有标记信息的代理ip,具体的,所述标记信息具体包括地域信息和访问效率信息,其中,地域信息包括境内外归属信息和精确到省级的境内地址信息,访问效率信息包括高、中、低三档,其中高档位为对应的访问效率为0-50ms,中档位对应的访问效率为50-200ms,低档位对应的访问效率为200-500ms。
31.上述方法中,通过步骤3实现特定网站ip代理池的生成,具体的,当有爬取任务需要使用代理ip访问时,判断是否有该网站特定的代理池,没有则按网站域名生成特定网站的ip代理池队列。生成以后再判断网站所在的大区以及地域省份,将标记ip集合中标记相同大区、地域的代理ip并按分值由高到低加载到网站代理池队列,供爬取任务使用。通过步骤3,可得到若干网站ip代理池,这些网站ip代理池中的代理ip的标记信息与该网站一一对
应,可用于对应网站的爬取,若干网站ip代理池对应若干网站,且相互之间不干扰,进而实现多网站并行爬取。
32.进一步的,上述方法还包括步骤4:监控所述网站代理ip队列中代理ip的爬取状态,并将爬取成功的代理ip置于网站代理ip队列的队尾,将爬取失败的代理ip放入初始ip集合内;监控网站代理ip队列,并在网站代理ip队列中的代理ip数量小于预设数额时,在所述标记ip集合中挑取标记信息与其匹配的代理ip加入到所述网站代理ip队列中。
33.进一步的,上述方法还包括步骤5:定期验证标记ip集合内代理ip的可用性,并在可用性验证不通过的代理ip剔除到初始ip集合中。
34.实施例2:
35.基于上述方法,本发明还提供了多网站并行爬取的ip代理池的构建系统,其包括:
36.ip验证模块,用于对初始ip集合内的代理ip进行代理可用性验证,并将可用的代理ip置入有效队列中,得到有效ip集合;
37.ip标记模块,用于对ip验证模块得到的有效ip集合内的代理ip进行逐一标记,得到具有标记信息的标记ip集合;
38.ip组合模块,用于获取若干待爬取网站信息并为每个所述待爬取网站构建对应的网站代理ip队列,还用于基于待爬取网站信息在ip标记模块得到的标记ip集合中挑取标记信息与其匹配的代理ip,并将挑取的代理ip置入对应的网站代理ip队列中,得到若干网站ip代理池。
39.进一步的,所述用于多网站并行爬取的ip代理池的构建系统还包括网站爬取模块,用于获取待爬取网站信息并调用ip组合模块得到的对应的网站代理ip队列,并通过网站代理ip队列中的代理ip爬取网站,得到网站信息。进一步的,所述网站爬取模块还用于在代理ip初次爬取目标网站失败时,重试爬取,且每次重试爬取的时间较上次爬取递增。具体的,将重试爬取的次数设为3次,且第一次爬取的时间为5000ms,此后每次重试的时间增加1000ms,若三次重试之后仍无法完成爬取,则按照网站代理ip队列的顺序选择写一个代理ip。
40.进一步的,还包括队列维护模块,用于监控所述网站爬取模块,并将爬取成功的代理ip置于网站代理ip队列的队尾,将爬取失败的代理ip放入初始ip集合内。进一步的,所述队列维护模块还用于小于预设数额时,在所述标记ip集合中挑取标记信息与其匹配的代理ip加入到所述网站代理ip队列中。具体的,当网站代理ip队列中的代理ip数量小于单台爬虫设备最大线程数*设备数*5时,则在所述标记ip集合中挑取标记信息与其匹配的代理ip加入到所述网站代理ip队列中。
41.进一步的,还包括定时验证模块,所述定时验证模块用于定时验证标记ip集合内代理ip的可用性,并将可用性验证不通过的代理ip剔除到初始ip集合中。具体的,所述定时验证模块的验证间隔时间为5分钟,具体的,通过使用标记ip集合中的代理ip访问目标网站(http://httpbin.org/get)来验证代理ip的可用性。
42.进一步的,还包括ip评分模块,所述ip评分模块用于根据可用性验证结果、标记信息以及爬取结果为所述代理ip评分,所述有效队列和所述网站代理ip队列中的代理ip根据评分列队排列。具体的,所述ip评分模块为初始ip集合内的代理ip赋予初始分值5;然后为通过可用性验证的代理ip更新分值至7;最后根据访问效率的高中低三档,为代理ip更新分
值至10、9、8。此外当网站爬取模块通过代理ip爬取对应的网站失败一次,所述代理ip的分值减1。
43.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1