本发明专利技术公开了一种主机负荷智能感知的定向爬虫方法及系统,方法包括:(1)打开浏览器并定位到待爬取站点,通过模拟浏览器行为实现页面的跳转以及读取;(2)根据设置的检索条件自动生成需要爬取页面的URL集合;(3)根据爬虫任务的重要性和紧迫程度对URL集合进行优先级分级,划分为若干个子集合,为每个子集合分配一个或多个线程来处理;(4)每个线程在进行数据爬取时所采用的方法为:A、对于URL中待爬取的条目,抓取相应内容的关键字词或标题,进行语义分析,并根据语义分析结果筛选爬取内容;B、记录当前页面响应时间,并与历史页面响应时间比较,从而感知主机/网络的繁忙程度,动态地调整爬取速度。本发明专利技术爬虫效率更高,且具有自律性,有利于构建良好的互联网生态。
A method and system for intelligent load sensing of the host
【技术实现步骤摘要】
一种主机负荷智能感知的定向爬虫方法及系统
本专利技术涉及数据爬虫方法,尤其涉及一种主机负荷智能感知的定向爬虫方法及系统。
技术介绍
在大数据和深度学习等领域,需要大量的数据以支撑研究。这就需要运用网络爬虫技术在浩瀚的互联网中抓取所需要的数据。通过爬虫技术可以快速获取特定领域的相关数据,并根据需求过滤筛选数据。网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,又被称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。现有的大部分爬虫通过HTTP协议下载静态HTML文本信息并根据HTML文本结构提取数据,例如常见的python库:requests库,beautifulsoup库等。但是现在许多站点采用javascript以及ajax技术动态加载网页,这就使得采用传统爬取技术路线爬取这些网页困难重重。在实践中由于多数爬虫缺乏自律,都想在最短的时间抓取最多的数据,影响了网站的正常工作,导致大量站点采取了反爬取措施,并在Robots协议中设置了许多规定,甚至许多站点在数据交互时都采用了验证或进行了加密,这给正常合理的数据爬取也带来了很多不必要的障碍,恶化了整个互联网生态。
技术实现思路
专利技术目的:本专利技术针对现有技术存在的问题,提供一种主机负荷智能感知的定向爬虫方及系统法,本专利技术爬虫效率更高,且具有自律性,有利于构建良好的互联网生态。技术方案:本专利技术所述的主机负荷智能感知的定向爬虫方法包括:(1)打开浏览器并定位到待爬取站点,通过模拟浏览器行为实现页面的跳转以及读取;(2)根据设置的检索条件自动生成需要爬取页面的URL集合;(3)根据爬虫任务的重要性和紧迫程度对URL集合进行优先级分级,按照优先级将URL集合划分为若干个子集合,为每个子集合分配一个或多个线程来处理;(4)根据任务优先级和主机/网络的繁忙程度,对线程的运行情况进行调整,其中,每个线程在进行数据爬取时所采用的方法为:A、对于URL中待爬取的条目,抓取相应内容的关键字词或标题,进行语义分析,并根据语义分析结果筛选爬取内容;B、记录当前页面响应时间,并与历史页面响应时间比较,从而主动感知主机/网络的繁忙程度,动态地调整爬虫的爬取频度和数据量。进一步的,步骤(1)中所述打开浏览器并定位到待爬取站点是通过采用selenium测试工具实现。进一步的,步骤(1)中,模拟浏览器的行为是通过Xpath路径进行HTMLelement定位,定位成功后调用selenium测试工具的webdriver模块相应函数模拟浏览器的行为。进一步的,步骤(1)中,若待爬取站点需要登陆,则定位到登陆界面,并通过程序执行自动登陆,使浏览器自动记录cookie。进一步的,步骤(2)中所述URL集合通过以下方式生成:通过待爬取站点自带检索引擎产生的URL,分析出URL中键值对的含义,得到自定义URL中的参数,生成需要爬取页面的URL集合。进一步的,步骤(4)中所述对线程的运行情况进行调整的具体方法为:在主机/网络繁忙的时候,不分配爬取任务或只进行优先级高于阈值的任务,而将主要的采集工作放在主机/网络的闲暇时间进行。进一步的,步骤A中,所述根据语义分析结果筛选爬取内容,具体为:通过语义分析,过滤掉不符合爬取要求的数据,仅爬取符合爬取要求的数据。进一步的,步骤B中,所述动态地调整爬虫的爬取频度和数据量,具体为:若感知到当前时间段主机/网络繁忙,则放缓爬取速度,若当前时间段主机/网络闲暇,则提高爬取速度。本专利技术所述的主机负荷智能感知的定向爬虫系统,包括处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。有益效果:本专利技术提采用selenium测试工具模拟浏览器行为进行数据爬取,可以根据需求进行精准的定向数据爬取,减少无效数据的传输,尽量降低网站主机额外的工作负荷并提升抓取的效率;其也能够感知网络流量情况从而动态调整爬取速度来适应网络情况从而避免给服务器带来过大压力,根据爬虫任务的重要性和紧迫程度对URL集合即待爬取内容进行分级,在主机/网络繁忙的时候不分配爬取任务或只进行非常重要且紧迫的任务,而将主要的采集工作放在主机/网络的闲暇时间进行。同时运用了多线程技术并在每一线程中都独立判断网络流量情况以动态适应当前网络情况。在提升效率的同时兼顾了站点服务器的负载情况,是一种新型的智能自律型爬虫,使整个互联生态系统变得更为智能与友好。附图说明图1是本专利技术实施例的流程示意图。具体实施方式本实施例提供了一种主机负荷智能感知的定向爬虫方法,如图1所示,包括以下步骤:(1)打开浏览器并定位到待爬取站点,通过模拟浏览器行为实现页面的跳转以及读取。若待爬取站点需要登陆,则定位到登陆界面,并通过程序执行自动登陆,使浏览器自动记录cookie。其中,所述打开浏览器并定位到待爬取站点是通过采用selenium测试工具实现。模拟浏览器(点击,拖动等)的行为是通过Xpath路径进行HTMLelement定位,定位成功后调用selenium测试工具的webdriver模块相应函数模拟浏览器的行为。为了拥有更好的兼容性,浏览器的对象优选为Chrome,且为了正确调用选定浏览器,在步骤(1)之前还包括:安装指定浏览器驱动程序,导入实现方法所需要的python库,如selenium库等。(2)根据设置的检索条件自动生成需要爬取页面的URL集合。其中,通过待爬取站点自带检索引擎产生的URL,分析出URL中键值对的含义,得到自定义URL中的参数,生成需要爬取页面的URL集合。例如假设需要检索在2019年9月18日到2019年9月25日中所有包含“判决”关键词的刑事案件,设置检索URL为:“http://openlaw.cn/search/judgement/advanced?showResults=true&keyword=%E5%88%A4%E5%86%B3&causeId=&caseNo=&litigationType=Criminal&docType=&litigant=&plaintiff=&defendant=&thirdParty=&lawyerId=&lawFirmId=&legals=&courtId=&judgeId=&clerk=&judgeDateYear=&judgeDateBegin=2019-09-18&judgeDateEnd=2019-09-25&zone=&procedureType=&lawId=&lawSearch=&courtLevel=&judgeResult=&page=1”。通过控制URL中的”judgeDateBegin”,本文档来自技高网...
【技术保护点】
1.一种主机负荷智能感知的定向爬虫方法,其特征在于该方法包括:/n(1)打开浏览器并定位到待爬取站点,通过模拟浏览器行为实现页面的跳转以及读取;/n(2)根据设置的检索条件自动生成需要爬取页面的URL集合;/n(3)根据爬虫任务的重要性和紧迫程度对URL集合进行优先级分级,按照优先级将URL集合划分为若干个子集合,为每个子集合分配一个或多个线程来处理;/n(4)根据任务优先级和主机/网络的繁忙程度,对线程的运行情况进行调整,其中,每个线程在进行数据爬取时所采用的方法为:/nA、对于URL中待爬取的条目,抓取相应内容的关键字词或标题,进行语义分析,并根据语义分析结果筛选爬取内容;/nB、记录当前页面响应时间,并与历史页面响应时间比较,从而主动感知主机/网络的繁忙程度,动态地调整爬虫的爬取频度和数据量。/n
【技术特征摘要】
1.一种主机负荷智能感知的定向爬虫方法,其特征在于该方法包括:
(1)打开浏览器并定位到待爬取站点,通过模拟浏览器行为实现页面的跳转以及读取;
(2)根据设置的检索条件自动生成需要爬取页面的URL集合;
(3)根据爬虫任务的重要性和紧迫程度对URL集合进行优先级分级,按照优先级将URL集合划分为若干个子集合,为每个子集合分配一个或多个线程来处理;
(4)根据任务优先级和主机/网络的繁忙程度,对线程的运行情况进行调整,其中,每个线程在进行数据爬取时所采用的方法为:
A、对于URL中待爬取的条目,抓取相应内容的关键字词或标题,进行语义分析,并根据语义分析结果筛选爬取内容;
B、记录当前页面响应时间,并与历史页面响应时间比较,从而主动感知主机/网络的繁忙程度,动态地调整爬虫的爬取频度和数据量。
2.根据权利要求1所述的主机负荷智能感知的定向爬虫方法,其特征在于:步骤(1)中所述打开浏览器并定位到待爬取站点是通过采用selenium测试工具实现。
3.根据权利要求1所述的主机负荷智能感知的定向爬虫方法,其特征在于:步骤(1)中,模拟浏览器的行为是通过Xpath路径进行HTMLelement定位,定位成功后调用selenium测试工具的webdriver模块相应函数模拟浏览器的行为。
4.根据权利要求1所述的主机负荷智能感知的定向爬虫方法,其特征在于:步骤(1)中,若待爬...
【专利技术属性】
技术研发人员:凌建辉,张启航,王天昊,曹勇,王禄生,张柏礼,
申请(专利权)人:东南大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。