网页爬虫抓取方法及系统技术方案

技术编号:13911059 阅读:77 留言:0更新日期:2016-10-27 03:06
本发明专利技术提供了一种网页爬虫抓取方法及系统,根据根节点获取待爬取页面中所有链接,找出其中未访问过的链接,获取未访问链接的数据流,对数据流进行清洗后,提取数据流中的文本,本发明专利技术通过对数据流的清洗去除无关内容的干扰,且其抓取结果为纯文本。

【技术实现步骤摘要】

本专利技术涉及互联网信息搜索
,尤其涉及一种网页爬虫抓取方法及系统
技术介绍
现有的网页爬虫抓取方法会不可避免的引入Jscript脚本以及无关内容,其抓取结果也不是纯文本,无法直接用于NLP的数据预处理等后续语义分析。
技术实现思路
本专利技术的目的是提供一种网页爬虫抓取方法及系统,解决现有的网页爬虫抓取结果包含无关内容、且不是纯文本的问题。本专利技术解决其技术问题所采用的技术方案是:一种网页爬虫抓取方法,包括:设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;获取待爬取页面的根节点;根据所述根节点,获取待爬取页面中的所有链接;将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;对中间数据库中的数据流进行清洗;提取数据流中的文本。在此基础上,进一步地,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为htmlparser。或者,进一步地,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为宽度优先遍历。在上述任意实施例的基础上,进一步地,所述根据所述根节点,获取待爬取页面中的所有链接的步骤后,还包括:删除页面中的自身跳转链接。在上述任意实施例的基础上,进一步地,所述获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库的步骤中,数据流的存储格式为HTML格式。在上述任意实施例的基础上,进一步地,所述对中间数据库中的数据流进行清洗的步骤,具体为:采用正则表达式匹配的方式,删除不需要的标签及其字符;根据页面特征裁剪数据流的长度,删除与正文相同的标签中不属于正文的字符;设置垃圾字符库,删除与垃圾字符库相匹配的垃圾字符所在标签及其字符。在上述任意实施例的基础上,进一步地,所述对中间数据库中的数据流进行清洗的步骤后,还包括:限定数据流的字符长度。在上述任意实施例的基础上,进一步地,所述提取数据流中的文本的步骤中,提取文本的方法为htmlparser库中的stringbean方法。一种网页爬虫抓取系统,包括:设置模块,用于设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;根节点获取模块,用于获取待爬取页面的根节点;链接获取模块,用于根据所述根节点,获取待爬取页面中的所有链接;链接匹配模块,用于将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;数据流获取模块,用于获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;数据流清洗模块,用于对中间数据库中的数据流进行清洗;文本提取模块,用于提取数据流中的文本。本专利技术的有益效果是:本专利技术提供了一种网页爬虫抓取方法及系统,根据根节点获取待爬取页面中所有链接,找出其中未访问过的链接,获取未访问链接的数据流,对数据流进行清洗后,提取数据流中的文本,本专利技术通过对数据流的清洗去除无关内容的干扰,且其抓取结果为纯文本。附图说明下面结合附图和实施例对本专利技术进一步说明。图1示出了本专利技术实施例提供的一种网页爬虫抓取方法的流程图;图2示出了本专利技术实施例提供的一种网页爬虫抓取系统的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不限定本专利技术。具体实施例一如图1所示,本专利技术实施例提供了一种网页爬虫抓取方法,包括:步骤S101,设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;步骤S102,获取待爬取页面的根节点;步骤S103,根据所述根节点,获取待爬取页面中的所有链接;步骤S104,将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;步骤S105,获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;步骤S106,对中间数据库中的数据流进行清洗;步骤S107,提取数据流中的文本。本专利技术实施例根据根节点获取待爬取页面中所有链接,找出其中未访问过的链接,获取未访问链接的数据流,对数据流进行清洗后,提取数据流中的文本。本专利技术实施例通过对数据流的清洗去除无关内容的干扰,且其抓取结果为纯文本。本专利技术实施例对步骤S103中获取链接的方式不做限定,在上述实施例的基础上,优选的,获取链接的方式可以为htmlparser。htmlparser在html解析和分析上性能优越,适合抓取网页数据和改造html的内容。或者,优选的,步骤S103中获取链接的方式可以为宽度优先遍历。宽度优先和深度优先相比,深度优先可能会导致过深的遍历或者陷入“黑洞”,而且一般来说网页的重要内容的会在网页的前面几级节点上,故使用深度优先不符合现实需求。在上述任意实施例的基础上,优选的,本专利技术实施例在步骤S103后,还可以包括:删除页面中的自身跳转链接。这样做的好处是,减少系统的重复工作量,提升系统的工作效率。本专利技术实施例对步骤S105中数据流的存储格式不做限定,在上述任意实施例的基础上,优选的,数据流的存储格式可以为HTML格式。HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、图形、动画、声音、表格、链接等,使用HTML 语言可以把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机整体。本专利技术实施例对步骤S106中数据流的清洗方式不做限定,在上述任意实施例的基础上,优选的,其清洗过程可以具体为:采用正则表达式匹配的方式,删除不需要的标签及其字符;根据页面特征裁剪数据流的长度,删除与正文相同的标签中不属于正文的字符;设置垃圾字符库,删除与垃圾字符库相匹配的垃圾字符所在标签及其字符。这样做的好处是,清除无关内容的干扰。在上述任意实施例的基础上,优选的,本专利技术实施例在步骤S106后,还可以包括:限定数据流的字符长度。这样做的好处是,使人们可以得到符合自己要求的文本。本专利技术实施例对步骤S107中提取文本的方法不做限定,在上述任意实施例的基础上,优选的,提取文本的方法可以为htmlparser库中的stringbean方法。Stringbean方法可以从一个指定的URL获取移除<SCRIPT></SCRIPT>和<PRE></PRE>之间代码的html代码,也可以用做Visitor,用来移除这两种标签内部的代码,采用StringBean.getStrings()来获取结果。具体实施例二如图2所示,本专利技术实施例提供了一种网页爬虫抓取系统,包括:设置模块,用于设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;根节点获取模块,用于获取待爬取页面的根节点;链接获取模块,用于根据所述根节点,获取待爬取页面中的所有链接;链接匹配模块,用于将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;数据流获取模块,用于获取未访问队列中每个链接所指向页面的数本文档来自技高网...

【技术保护点】
一种网页爬虫抓取方法,其特征在于,包括:设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;获取待爬取页面的根节点;根据所述根节点,获取待爬取页面中的所有链接;将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;对中间数据库中的数据流进行清洗;提取数据流中的文本。

【技术特征摘要】
1.一种网页爬虫抓取方法,其特征在于,包括:设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;获取待爬取页面的根节点;根据所述根节点,获取待爬取页面中的所有链接;将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;对中间数据库中的数据流进行清洗;提取数据流中的文本。2.根据权利要求1所述的网页爬虫抓取方法,其特征在于,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为htmlparser。3.根据权利要求1所述的网页爬虫抓取方法,其特征在于,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为宽度优先遍历。4.根据权利要求1或2所述的网页爬虫抓取方法,其特征在于,所述根据所述根节点,获取待爬取页面中的所有链接的步骤后,还包括:删除页面中的自身跳转链接。5.根据权利要求1或2所述的网页爬虫抓取方法,其特征在于,所述获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库的步骤中,数据流的存储格式为HTML格式。6.根据权利要求1或2所述的网页爬虫抓取方法,其特征...

【专利技术属性】
技术研发人员:彭德光利节孙健李鹏华
申请(专利权)人:重庆兆光科技股份有限公司
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1