关于网站爬虫中点击类型超链接的自动化处理方法及装置

文档序号:1846148 发布日期:2021-11-16 浏览:3次 >En<

阅读说明:本技术 关于网站爬虫中点击类型超链接的自动化处理方法及装置 (Automatic processing method and device for click type hyperlink in website crawler ) 是由 董仲舒 张阳光 何文欢 程杰 毕静静 姚金龙 于 2021-08-30 设计创作,主要内容包括:本发明公开一种关于网站爬虫中点击类型超链接的自动化处理方法及装置,该方法包括:通过网络爬虫抓取页面链接;生成网页内容;然后生成超链接队列;利用xpath表达式判断是否含有需要单击的元素;若是返回该表达式,并继续执行,若否跳至最后一步;利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则继续执行,否则跳至最后一步;根据该表达式找到需要单击的元素、进行模拟单击;如果浏览器响应成功,继续执行,否则跳至最后一步;获取响应的内容并进行UTF-8编码,然后跳到第二步;取出下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后跳到第一步。本发明极大的提高了网络爬虫内容的完整性和准确性。(The invention discloses an automatic processing method and a device for clicking type hyperlinks in website crawlers, wherein the method comprises the following steps: capturing page links through a web crawler; generating webpage content; then generating a hyperlink queue; judging whether an element needing to be clicked is contained or not by using an xpath expression; if the expression is returned, continuing to execute, and if the expression is not returned, jumping to the last step; calling the virtual browser by utilizing selinum, reloading the current page, if the loading is successful, continuing to execute, otherwise, jumping to the last step; finding the elements needing clicking according to the expression and carrying out simulated clicking; if the browser response is successful, continuing to execute, otherwise, jumping to the last step; acquiring the response content, encoding by UTF-8, and jumping to the second step; taking out the next hyperlink, and adopting an breadth or depth traversal algorithm to continuously capture the next hyperlink; and then jumps to the first step. The invention greatly improves the integrity and accuracy of the contents of the web crawler.)

关于网站爬虫中点击类型超链接的自动化处理方法及装置

技术领域

本发明属于网站爬虫技术领域,尤其涉及一种关于网站爬虫中点击类型超链接的自动化处理方法及装置,适用于在网站爬虫过程中遇到的需要进行人工单击才能进一步访问的链接。

背景技术

随着现代网页前端技术特别是前端语言javascript的发展;出现了很多的优秀的前端框架,比如jquery、vue、react、angular,随着这些框架的出现,继而出现一些优秀的UI组件库,例如bootstrap、element-ui等等,这些框架在兼容性、适用性、便利性和国际化上都做的很优秀,极大的提高了网站开发的效率,因此越来越多的网站开始利用进行这些框架进行开发。

虽然这些框架给网站开发带来了很大的便利性,但是对网站爬虫以及内容检索领域来讲,却带来了很大的困难和挑战,其中最突出的一个问题就是对于一些超链接需要单击才能继续访问;而传统的网络爬虫只抓取网页存在的类似于<a href=“xxx”>xxx</a>这样的超链接,但是对于<a onclick=“xxx”>xxx</a>这样的超链接却捉襟见肘;而这样的超链接在现有的网站中却来越多,特别是存在于“上一页”和“下一页”这样的超链接中;而这些超链接又是网站内容分页的基本样式和方法,从而导致网站爬虫时抓取的内容不完整、不准确。

发明内容

本发明针对传统网站爬虫时不能抓取点击类型超链接(如“上一页”和“下一页”超链接),从而导致抓取内容不完整、不准确的问题,提出一种关于网站爬虫中点击类型超链接的自动化处理方法及装置。

为了实现上述目的,本发明采用以下技术方案:

本发明一方面提出一种关于网站爬虫中点击类型超链接的自动化处理方法,包括:

步骤1:通过网络爬虫抓取页面链接;

步骤2:根据页面链接生成网页内容;

步骤3:将该网页中所有超链接去重之后生成一个超链接队列;

步骤4:在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行步骤5,若否,则跳到步骤8;

步骤5:利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行步骤6,否则跳到步骤8;

步骤6:根据步骤4返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行步骤7,否则跳到步骤8;

步骤7:从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后跳到步骤2;

步骤8:取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后跳到步骤1。

进一步地,所述步骤4中,所述xpath表达式包括:

1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];

2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];

3)//a[contains(text(),'下一页')[email protected] [email protected]='#'];

4)//a[contains(text(),'下一页')[email protected]];

5)//a[@onclick]。

本发明另一方面提出一种关于网站爬虫中点击类型超链接的自动化处理装置,包括:

页面链接抓取模块,用于通过网络爬虫抓取页面链接;

网页内容生成模块,用于根据页面链接生成网页内容;

去重模块,用于将该网页中所有超链接去重之后生成一个超链接队列;

第一判断模块,用于在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行第二判断模块,若否,则执行循环模块;

第二判断模块,用于利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行第三判断模块,否则执行循环模块;

第三判断模块,用于根据第一判断模块返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行编码模块,否则执行循环模块;

编码模块,用于从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后执行网页内容生成模块;

循环模块,用于取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后执行页面链接抓取模块。

进一步地,所述xpath表达式包括:

1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];

2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];

3)//a[contains(text(),'下一页')[email protected] [email protected]='#'];

4)//a[contains(text(),'下一页')[email protected]];

5)//a[@onclick]。

与现有技术相比,本发明具有的有益效果:

本发明采用模拟浏览器技术,当判断网页内容中存在需要进行人工单击的特征时,直接利用模拟浏览器对当前页面进行一次加载,然后找到当前需要单击的链接进行模拟单击事件,然后浏览器对该链接进行模拟加载,最后返回相应的内容。通过本发明,对网站爬虫时既能够抓取传统的网页内容,也能够抓取传统的网络爬虫不能抓取的点击类型超链接(如“上一页”和“下一页”超链接),极大的提高了网络爬虫内容的完整性和准确性。

附图说明

图1为本发明实施例一种关于网站爬虫中点击类型超链接的自动化处理方法的基本流程图;

图2为网站爬虫数据对比图;

图3为本发明实施例一种关于网站爬虫中点击类型超链接的自动化处理装置的结构示意图。

具体实施方式

下面结合附图和具体的实施例对本发明做进一步的解释说明:

如图1所示,一种关于网站爬虫中点击类型超链接的自动化处理方法,包括:

步骤1:通过网络爬虫抓取页面链接;

步骤2:根据页面链接生成网页内容;

步骤3:将该网页中所有超链接去重之后生成一个超链接队列;

步骤4:在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行步骤5,若否,则跳到步骤8;

步骤5:利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行步骤6,否则跳到步骤8;

步骤6:根据步骤4返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行步骤7,否则跳到步骤8;

步骤7:从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后跳到步骤2;

步骤8:取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后跳到步骤1。

进一步地,所述步骤4中,所述xpath表达式包括:

1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];

2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];

3)//a[contains(text(),'下一页')[email protected] [email protected]='#'];

4)//a[contains(text(),'下一页')[email protected]];

5)//a[@onclick]。

为验证本发明效果,进行如下实验:

在本次测试中,我们用了五个网站进行测试,为了消除网络抖动以及服务器性能影响,我们对每个网站进行了十次测试,前五次是用标准的爬虫方法进行测试,后五次是采用本发明方法进行的测试;测试结果如下表所示。为了隐私等原因,我们将网站名称采用网站id来代替。

表1:对比测试结果表

对比测试图如图2所示。

由表1、图2可知,采用本发明方法之后对于某些网站进行网络爬虫,抓取的数据量得到明显提升,极大的提高了爬虫数据的完整性。

在上述实施例的基础上,如图3所示,本发明另一方面提出一种关于网站爬虫中点击类型超链接的自动化处理装置,包括:

页面链接抓取模块,用于通过网络爬虫抓取页面链接;

网页内容生成模块,用于根据页面链接生成网页内容;

去重模块,用于将该网页中所有超链接去重之后生成一个超链接队列;

第一判断模块,用于在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行第二判断模块,若否,则执行循环模块;

第二判断模块,用于利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行第三判断模块,否则执行循环模块;

第三判断模块,用于根据第一判断模块返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行编码模块,否则执行循环模块;

编码模块,用于从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后执行网页内容生成模块;

循环模块,用于取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后执行页面链接抓取模块。

进一步地,所述xpath表达式包括:

1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];

2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];

3)//a[contains(text(),'下一页')[email protected] [email protected]='#'];

4)//a[contains(text(),'下一页')[email protected]];

5)//a[@onclick]。

综上,本发明采用模拟浏览器技术,当判断网页内容中存在需要进行人工单击的特征时,直接利用模拟浏览器对当前页面进行一次加载,然后找到当前需要单击的链接进行模拟单击事件,然后浏览器对该链接进行模拟加载,最后返回相应的内容。通过本发明,对网站爬虫时既能够抓取传统的网页内容,也能够抓取传统的网络爬虫不能抓取的点击类型超链接(如“上一页”和“下一页”超链接),极大的提高了网络爬虫内容的完整性和准确性。

以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于云计算分布式网络视频数据挖掘采集系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!