本发明属于检测领域,特别涉及一种爬虫自动化脚本的检测方法及装置。
背景技术:
随着信息与数据科学的蓬勃发展,信息采集技术(爬虫,搜索引擎)、自然语言处理等技术正成为当今人工智能领域的全新应用形式和方向,其对待格式化数据的需要量级正在以较高的速度增长。获取数据的方式从渠道购买到利用信息采集技术进行抓取等方式。
信息采集技术在经历反爬,各类加密以及移动互联网等的安防反hook的技术对抗下,面临无法快速采集、精准采集、采集时进入“蜜罐”等诸多问题。故通用化信息采集技术成为采集技术发展的必然方向。一种通用化采集的方式已成为较好解决数据问题的关键所在。
采集文本信息可通过利用浏览器内核实现js前端代码的自动加载与渲染,通过完整模拟浏览器的形式突破静态反爬技术的封锁,缺点是速度较慢且市场上鲜少有能够通过极验行为验证于其他相关反爬手段的产品,不适用于搭建大规模采集。
信息采集技术可利用爬虫技术实现。爬虫技术包含范围较广,可操作性大,可针对特定网站进行特定的信息采集与反爬破解,速率较高但是面临法律法规风险。
信息采集技术可利用自动化测试工具实现。自动化测试工具同浏览器内核相似,一般基于webdriver体系,采集时模拟正常用户操作,缺点也与浏览器内核实现方式类似,即抓取速度较慢,遭遇极验行为验证时较难绕过,需要其他框架或技术配合才能进行大规模采集。
上述采集模式都可针对固定方向解决问题,缺乏一种可以自主的,可调控性与适用性强的融合性采集模板。
对于以数据尤其海量的数据作为运用技术开发的工作等来说,网络爬虫作为一种较新又快捷的数据来源技术为其解决了很大的数据压力,但是当前的主流爬虫撰写方式存在耗费人力,财力以及时效性差的弊端且无法有效针对较多网站抓取任务,并为其生成对应的采集脚本。
技术实现要素:
针对相关技术中的上述技术问题,本发明提出一种爬虫自动化脚本的检测方法及装置,能够克服现有技术的上述不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种爬虫自动化脚本的检测方法,该方法包括:
通过建立数据规则库构造通用化采集脚本,并对所述通用化采集脚本测试验证;
收集目标分配的主网址,将所述主网址存入储存字段工具中;
运用计算机程序设计语言读取所述储存字段工具中的数据,将所述数据嵌入到测试验证后的采集脚本,生成自动化脚本,其中,所述储存字段工具中的数据包括所述主网址;
测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,将满足要求的所需数据字段进行整理和入库。
进一步的,所述运用计算机程序设计语言读取所述储存字段工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成。
进一步的,所述数据规则库为多个流程的所述数据规则库。
进一步的,所述通过测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,包括:
生成的所述自动化脚本进行人工验证所述自动化脚本的数据字段是否完整,数据格式是否正确,数据数量是否遗漏。
进一步的,所述数据规则库的构建规则,包括:正则规则模块、dom规则类集合、固定dom节点特征规则、文本特征的规则,其中,dom表示文档对象模型。
进一步的,所述dom规则类集合至少包括序列化html源码后的dom规则类集合;所述固定dom节点特征规则为基于html网页范例的固定dom节点特征规则。
进一步的,所述对所述通用化采集脚本测试验证,包括:
收集分配网址,从所述分配网址中选出目标网址;
查看所述目标网址的规律;
通过所述查看所述目标网址的规律,来完成所需采集数据的完整采集过程,基于所述所需采集数据的完整采集过程生成对应的所述通用化采集脚本文件并随机抽取10%所述目标网址进行人工测试验证。
进一步的,所述运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
通过xlrt工具包和xlrd工具包将excel工具中网址的导入到python语言编程中;
采用python语言构造函数,通过构建的所述函数进行中文关键词匹配,嵌入收集的分配网址到已经测试完成的所述采集脚本中,生成自动化脚本模板。
进一步的,所述构造函数,包括:
定义待生成的字段;
制定嵌入自动化脚本规则;
依据嵌入自动化脚本规则,将所述待生成的字段嵌入到自动化脚本中,打印自动化脚本,若程序报错,重新修改所述程序直到运行,查看脚本数量是否正确。
另一方面,还提供了一种爬虫自动化脚本的检测装置,该装置包括:
测试验证单元,用于通过建立数据规则库构造通用化采集脚本,并对所述通用化采集脚本测试验证;
收集单元,用于收集目标分配的主网址,将所述主网址存入储存字段工具中;
生成单元,用于运用计算机程序设计语言读取所述储存字段工具中的数据,将所述数据嵌入到测试验证后的采集脚本,生成自动化脚本,其中,所述储存字段工具中的数据包括所述主网址;
检测单元,用于测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,将满足要求的所需数据字段进行整理和入库。
进一步的,所述运用计算机程序设计语言读取所述储存字段工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成。
进一步的,所述数据规则库为多个流程的所述数据规则库。
本发明通过自动化爬虫生成脚本能够大幅度降低目前主流爬虫的采集数据压力和资源耗费,其运用效力较之前的人工制作爬虫脚本而言,能够减少采集时间约50%,准确率提升约20%;该自动化爬虫生成脚本过程中只需要前期调研网址大概规律和收集网址,不需要生成多种数据采集脚本类型,可复用性强以及和后期修改方式统一;节省了人力、财力以及克服了时效性差的弊端。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据现本发明实施例的一种爬虫自动化脚本的检测方法的流程框图;
图2示出了根据现本发明实施例的一种爬虫自动化脚本的检测装置的结构示意图;
图3示出了根据现本发明实施例的生成模板应用流程框图;
图4示出了根据现本发明实施例的自动化模板生成流程框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种爬虫自动化脚本的检测方法,该方法包括:
步骤s1:通过建立数据规则库构造通用化采集脚本,并对所述通用化采集脚本测试验证;
例如,建立庞大的数据规则库,接着构造脚本模板。
步骤s2:收集目标分配的主网址,将所述主网址存入储存字段工具中,其中,所述储存字段工具包括excel工具、txt文件。主网址来自的地方需要看业务或者工作需要,比如公司业务需要采集某网站发布的新闻,主网址就来自于某网站的网络地址。存入excel工具中的字段,比如所需采集的网址。
在本发明的一些实施例中,先把需要的字段收集好存入excel工具中,后面通过excel工具把字段导入进python语言,python语言再将字段进入脚本。规定好的网址或者其它特殊字段的存入规定格式,收集好需要的规定字段是为了后期的脚本,脚本和模板是等同的概念。主网址存入的位置不一定非得在excel工具或txt文件里,只要存储工具储存字段的格式和excel工具里存储字段的一致,就可以作为存储工具。
步骤s3:运用计算机程序设计语言读取所述储存字段工具中的数据,将所述数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,其中,所述储存字段工具中的数据包括所述主网址;
步骤s4:测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,将满足要求的所需数据字段进行整理和入库。
例如,所需数据看业务或者工作需要,比如公司业务需要采集某网站发布的新闻,那这个网址为该网站的网络地址,这里所需数据就是该网站发布的新闻数据。要什么数据就去找它的网络地址,然后通过代码获取它,自动化脚本节省了人力和时间等,实现了多个网站同时爬取。
在本发明的一些实施例中,脚本(调研建立规则库,用代码实现,用模板图这种结构)——采集字段——excel工具、txt文件(只要能存字段的工具都可以,依据规则存储)——python语言读取数据进行嵌入模板(脚本)——最后生成大量脚本。
在本发明中,查看网址的规律体现在完成脚本模板,通过观察所需要采集的新闻网址(主网址到详情页网址),比如某网站的新闻,一个网站有很多新闻,各个具体的新闻的具体网址是不一样的,因此通过第一层主网址(网站链接口)到包含列表页的新闻地址最后到具体的新闻的链接地址,这些层通过这些网址是如何构造的以及跳到下一页这个地址又是怎么变化的,都需要记录下来写进代码规则库。
在本发明的一些实施例中,所述运用计算机程序设计语言读取所述储存字段工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成。
在本发明的一些实施例中,所述数据规则库为多个流程的所述数据规则库。
在本发明的一些实施例中,所述通过测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,包括:生成的所述自动化脚本进行人工验证所述自动化脚本的数据字段是否完整,数据格式是否正确,数据数量是否遗漏。
在本发明的一些实施例中,所述数据规则库的构建规则,包括:正则规则模块、dom规则类集合、固定dom节点特征规则、文本特征的规则,其中,dom表示文档对象模型。
在本发明的一些实施例中,所述dom规则类集合至少包括序列化html源码后的dom规则类集合;所述固定dom节点特征规则为基于html网页范例的固定dom节点特征规则。
对所述通用化采集脚本测试验证,包括:
步骤s11:收集分配网址,从所述分配网址中选出目标网址;
步骤s12:查看所述目标网址的规律;
步骤s13:通过所述查看所述目标网址的规律,来完成所需采集数据的完整采集过程,基于所述所需采集数据的完整采集过程生成对应的所述通用化采集脚本文件并随机抽取10%所述目标网址进行人工测试验证。
运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
步骤s31:通过xlrt工具包和xlrd工具包将excel工具中网址的导入到python语言编程中;
步骤s32:采用python语言构造函数,通过构建的所述函数进行中文关键词匹配,嵌入收集的分配网址到已经测试完成的所述采集脚本中,生成自动化脚本模板。
构造函数,包括:
步骤s321:定义待生成的字段;
步骤s322:制定嵌入自动化脚本规则;
步骤s323:依据嵌入自动化脚本规则,将所述待生成的字段嵌入到自动化脚本中,打印自动化脚本,若程序报错,重新修改所述程序直到运行,查看脚本数量是否正确。例如,当程序报错时,重新修改其中的代码,毕竟代码有时缺个符号等操作问题也有运行不了。
如图2所示,另一方面,本发明提供了一种爬虫自动化脚本的检测装置,该装置包括:
测试验证单元,用于通过建立数据规则库构造通用化采集脚本,并对所述通用化采集脚本测试验证;
收集单元,用于收集目标分配的主网址,将所述主网址存入储存字段工具中,其中,所述储存字段工具包括excel工具、txt文件;
生成单元,用于运用计算机程序设计语言读取所述储存字段工具中的数据,将所述数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,其中,所述储存字段工具中的数据包括所述主网址;
检测单元,用于测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,将满足要求的所需数据字段进行整理和入库。
在本发明的一些实施例中,所述运用计算机程序设计语言读取所述储存字段工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成。
在本发明的一些实施例中,所述数据规则库为多个流程的所述数据规则库。
在本发明的一些实施例中,如图3所示,建立庞大的数据规则库构造脚本模板,规则库的构建规则为:
(1)构造正则规则模块:通过对html源码进行分块处理,通过筛选出的文本长度,标点符号等规则进行筛选处理,获取不同长度的文本并进行标注。
(2)序列化html源码后的dom规则类集合,该集合包含xpath类,qurry类,lxml类,urllib类。
(3)基于html网页范例的固定dom节点特征规则,该规则包括但不限于head,body内的标题、正文、图片、视频、发布时间、作者、来源。
(4)基于其它dom或是文本特征的规则。
规则库的处理流程:
(1)获取目标文本后进行dom节点化;同步进行正则文本匹配。
(2)将规则类分别对dom节点进行匹配,通过设定由粗到细,由长到短的规则粒度,筛选并与对应字段建立key,value关系;正则匹配进行同步匹配。
(3)比对dom规则匹配与正则规则匹配结果,返回值是由基于文本密度模型mss比对并融合后输出的,比对原则为互补且以dom规则匹配值为确信值。融合信息为两值互补对应字段信息。
(4)规则匹配确信值是通过人工打标签的形式获取得到,并由人工调试验证。
实施流程:
(1)通过收集分配网址。
(2)查看目标网址的规律;一般体现网址的加载方式,列表页的提取方式,翻页的构造规则,详情页的提取规则。
(3)如图3为对(2)的数据完整采集过程生成模板应用流程框图,基于上面的数据完整采集过程生成对应的脚本模板文件并随机抽取10%目标网址进行人工测试验证,最后用于实施。图3中,url:代表网址,header:请求头(含请求参数,比如代理),re为正则,json文件为封装数据的文件,xpath为xml路径语言,gerapy-auto-extractor为智能解析库;gne为详情页正文的提取库,比如正文内容、发布的时间、标题等。
在本发明的一些实施例中,如图4所示,收集目标分配的主网址,采集的网址存入excel工具中,也可以存入txt文件中,但是注意采集的网址需要注意以下几个事项:
(1)中文网址名要严谨规范,其中,带关键字;
(2)英文网址需要收集全,例如,从http开始收集,网址中间符合网址规范;
(3)其它根据需求来设计所需要添加的字段,一些随着脚本变化而变化得固定字段也可以收集起来一起插入模板中。
在本发明的一些实施例中,运用python语言和excel工具进行数据自动化脚本大批量生成,通过xlrt和xlrd等工具包将网址导入excel工具中,python语言通过构造函数进行中文关键词匹配来嵌入收集的网址到已经测试好的模板中去。如图4为实现自动化脚本模板生成流程框图。
在本发明的一些实施例中,生成的自动化脚本进行人工验证其数据字段是否完整,数据格式是否正确,数据数量是否遗漏等,验证完成后,再进行保存收集的数据。
本发明通过自动化爬虫生成脚本能够大幅度降低目前主流爬虫的采集数据压力和资源耗费,其运用效力较之前的人工制作爬虫脚本而言,能够减少采集时间约50%,准确率提升约20%;该自动化爬虫生成脚本过程中只需要前期调研网址大概规律和收集网址,不需要生成多种数据采集脚本类型,可复用性强以及和后期修改方式统一;节省了人力、财力以及克服了时效性差的弊端。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种爬虫自动化脚本的检测方法,其特征在于,包括:
通过建立数据规则库构造通用化采集脚本,并对所述通用化采集脚本测试验证;
收集目标分配的主网址,将所述主网址存入储存字段工具中;
运用计算机程序设计语言读取所述储存字段工具中的数据,将所述数据嵌入到测试验证后的采集脚本,生成自动化脚本,其中,所述储存字段工具中的数据包括所述主网址;
测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,将满足要求的所需数据字段进行整理和入库。
2.根据权利要求1所述的一种爬虫自动化脚本的检测方法,其特征在于,所述运用计算机程序设计语言读取所述储存字段工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成。
3.根据权利要求1所述的一种爬虫自动化脚本的检测方法,其特征在于,所述数据规则库为多个流程的所述数据规则库。
4.根据权利要求1所述的一种爬虫自动化脚本的检测方法,其特征在于,所述通过测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,包括:
生成的所述自动化脚本进行人工验证所述自动化脚本的数据字段是否完整,数据格式是否正确,数据数量是否遗漏。
5.根据权利要求1所述的一种爬虫自动化脚本的检测方法,其特征在于,所述数据规则库的构建规则,包括:正则规则模块、dom规则类集合、固定dom节点特征规则、文本特征的规则,其中,dom表示文档对象模型。
6.根据权利要求5所述的一种爬虫自动化脚本的检测方法,其特征在于,所述dom规则类集合至少包括序列化html源码后的dom规则类集合;所述固定dom节点特征规则为基于html网页范例的固定dom节点特征规则。
7.根据权利要求1所述的一种爬虫自动化脚本的检测方法,其特征在于,所述对所述通用化采集脚本测试验证,包括:
收集分配网址,从所述分配网址中选出目标网址;
查看所述目标网址的规律;
通过所述查看所述目标网址的规律,来完成所需采集数据的完整采集过程,基于所述所需采集数据的完整采集过程生成对应的所述通用化采集脚本文件并随机抽取10%所述目标网址进行人工测试验证。
8.根据权利要求1所述的一种爬虫自动化脚本的检测方法,其特征在于,所述运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
通过xlrt工具包和xlrd工具包将excel工具中网址的导入到python语言编程中;
采用python语言构造函数,通过构建的所述函数进行中文关键词匹配,嵌入收集的分配网址到已经测试完成的所述采集脚本中,生成自动化脚本模板。
9.根据权利要求8所述的一种爬虫自动化脚本的检测方法,其特征在于,所述构造函数,包括:
定义待生成的字段;
制定嵌入自动化脚本规则;
依据嵌入自动化脚本规则,将所述待生成的字段嵌入到自动化脚本中,打印自动化脚本,若程序报错,重新修改所述程序直到运行,查看脚本数量是否正确。
10.一种爬虫自动化脚本的检测装置,其特征在于,包括:
测试验证单元,用于通过建立数据规则库构造通用化采集脚本,并对所述通用化采集脚本测试验证;
收集单元,用于收集目标分配的主网址,将所述主网址存入储存字段工具中;
生成单元,用于运用计算机程序设计语言读取所述储存字段工具中的数据,将所述数据嵌入到测试验证后的采集脚本,生成自动化脚本,其中,所述储存字段工具中的数据包括所述主网址;
检测单元,用于测试生成的所述自动化脚本,查看所述自动化脚本的所需数据字段是否满足要求,将满足要求的所需数据字段进行整理和入库。
11.根据权利要求10所述的一种爬虫自动化脚本的检测装置,其特征在于,所述运用计算机程序设计语言读取所述储存字段工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成,包括:
运用python语言读取excel工具中的数据嵌入到测试验证后的采集脚本,自动化脚本大批量生成。
12.根据权利要求10所述的一种爬虫自动化脚本的检测装置,其特征在于,所述数据规则库为多个流程的所述数据规则库。
技术总结