一种网络文本数据爬虫方法与系统

文档序号:29942699发布日期:2022-05-07 15:04阅读:193来源:国知局
一种网络文本数据爬虫方法与系统

1.本发明涉及网络爬虫技术领域,特别是涉及一种网络文本数据爬虫方法与系统。


背景技术:

2.网络爬虫,又称网页蜘蛛(web crawler),是按照一定的规则来自动抓取互联网中信息的程序或脚本。现如今,万维网中存储有海量信息,如何有效地提取这些信息以及如何利用这些信息成为一个重大挑战。网络爬虫具体通过模仿浏览器访问网络资源,进而利用正则表达式、xpath等数据提取库,以及具体规则自动获取网页中特定目标信息。网络爬虫目前在搜索引擎、舆论监控、数据分析等方面应用广泛。
3.目前,网络文本数据爬虫方法有如下几种:1、用于从多域收集数据的方法、装置和计算机程序,其实现步骤包括:步骤一、从可通过搜索引擎访问的通用网络收集数据;步骤二、从无法通过通用网络浏览器访问但可通过预设特定软件访问的暗网站点收集数据;以及步骤三、将所收集到的数据以预设格式进行标准化,并且生成针对所收集到的数据的元数据。2、基于pagerank算法的医疗数据爬虫方法及系统,其实现步骤包括:步骤一、用户根据需要输入要爬取的医疗关键词;步骤二、计算网页时间因子及潜在相关性因子;步骤三、计算得到第一轮pr值,并临时存入数据库中;步骤四、对各网页中的超链接进行权重计算;计算得到第二轮pr值,并更新数据库;步骤五、比较pr值大小,获取pr值最大的n个网页;步骤六、输出pr值最大的n个网页。有效的解决传统通用爬虫算法偏重旧网页、主题漂移和偏重综合性网页的缺陷,可以高效、准确的爬取医疗数据网页。3、基于chrome插件的爬虫方法、装置、计算机设备和存储介质,其实现步骤包括:步骤一、向任务调度中心请求爬虫任务;步骤二、根据所述爬虫任务请求对应的爬虫标注模板,所述爬虫标注模板预先对目标网页进行模板标注得到;步骤三、启动chrome插件,由所述chrome插件根据所述爬虫标注模板中标注到的网页元素进行爬虫操作。采用本方法能够提高爬虫采集的工作效率。4、基于网络爬虫的文本信息爬虫方法,其实现步骤包括:步骤一、通过服务器获取网络爬虫任务的配置文件和第一文本;步骤二、所述服务器根据所述配置文件开启网络url信息爬取,并将爬取的信息整合为待处理信息;步骤三、所述服务器对所述待处理信息进行查重及删除重复内容处理后,得到第二文本;步骤四、所述服务器计算第一文本与第二文本之间的相似度,若相似度超出预设阈值,则输出第二文本。该方法基于网络爬虫进行信息获取,并针对第一文本和第二文本的相似度判定本次爬取的信息是否符合要求,提高了信息爬取的效率。5、动态网页爬虫系统,其实现步骤包括:步骤一、获取url库,对url库进行聚类分析,若存在聚类则进行步骤二,若不存在聚类结束;步骤二、从聚类中至少抽取一个随机抽取样本url;步骤三、分别采用脚本解析、渲染或采用脚本解析与渲染混合的方式对url进行爬取;步骤四、记录爬取信息的完整度、爬取时间、资源消耗等信息,通过优先算法选出最优爬虫方案,使用最优方案爬取聚类中的所有动态网页;步骤五、处理爬取信息,并执行步骤一。6、网络爬虫爬取路径的展示方法和装置,其实现步骤包括:步骤一、获取网络爬虫的网页节点的标识信息,以及网页节点的爬取顺序;步骤二、根据网页节点的标识信息和网页节点的爬取顺
序,生成网页之间的层级关系;步骤三、根据网页节点的标识信息和网页节点的之间的层级关系,生成爬取路径数据,并将爬取路径数据请求发送至服务器;步骤四、接收服务器发送的爬取路径数据,将爬取路径数据的数据格式转换为适配于前端框架的数据格式;步骤五、通过前端框架,展示所述适配于前端框架的数据格式的爬行路径数据。7、基于网络爬虫的数据处理方法、系统及平台,其实现步骤包括:步骤一、通过获取用户输入的网页爬虫指令;步骤二、网页爬虫指令包括目标网页信息和爬取对象集合,获取与目标网页信息和爬取对象集合对应的目标爬虫数据;步骤三、将目标爬虫数据保存至目标分布式保存节点中。8、基于xpath的爬虫目标定位方法,其实现步骤包括:步骤一、加载网址信息,获取网址对应的网页;步骤二、根据监控位置现有内容,找到其在网页宙的相对位置;步骤三、将网页进行分块,每块网页中包含监控位置内容;步骤四、通过人机交互确定监控范围。
4.上述网络文本数据爬虫技术存在如下缺点:1、数据来源单一,往往是以某一网站为根目录爬取其中页面的内容信息,大大降低获取到的网络文本数据量,爬取精度不高。同时还会对一些图片、视频、地图等无用网页内容进行处理,降低了数据爬取的效率。


技术实现要素:

5.基于此,本发明实施例提供一种网络文本数据爬虫方法与系统,以提高爬取精度和爬取效率。
6.为实现上述目的,本发明提供了如下方案:
7.一种网络文本数据爬虫方法,包括:
8.获取目标关键词的搜索结果页面;所述搜索结果页面是将所述目标关键词输入爬虫系统的关键词搜索栏,并由所述爬虫系统自动调用搜索引擎得到的;所述搜索结果页面包括至少一个条目网址和对应的描述文本;
9.对所述搜索结果页面中的每个所述条目网址进行解析,并根据解析结果将属于设定网址类型的条目网址删除,得到目标对象列表;所述目标对象列表用于存储删除后的条目网址和对应的描述文本;
10.根据所述目标关键词与所述目标对象列表中描述文本的关联度,对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址;
11.采用网页解析库对所述过滤后的条目网址对应的网页进行解析,得到每个网页的文本内容列表,并根据文本概率分布和文本长度对所述文本内容列表中的文本内容进行过滤,得到过滤后的文本内容列表;
12.根据所述目标关键词对所述过滤后的文本内容列表中文本内容的段落和句子进行筛选,由筛选后的文本内容确定所述目标关键词的网络文本数据。
13.可选的,所述采用网页解析库对所述过滤后的条目网址对应的网页进行解析,得到每个网页的文本内容列表,并根据文本概率分布和文本长度对所述文本内容列表中的文本内容进行过滤,得到过滤后的文本内容列表,具体包括:
14.采用beautifulsoup库中获取文本的方法得到所述过滤后的条目网址对应的网页中所有标签中的全部文本内容;
15.将所述全部文本内容按空格符划分,并将划分后的文本内容按照在网页中的先后顺序保存在文本内容列表中;
16.根据所述文本内容列表中划分后的文本内容的重要性的分布概率计算需删除文本的项数k;
17.将所述文本内容列表中的头部前k项文本内容和尾部后k项文本内容删除,得到概率分布筛选后的文本内容列表;
18.将所述概率分布筛选后的文本内容列表中文本长度小于设定最短长度的文本内容删除,得到过滤后的文本内容列表。
19.可选的,所述根据所述目标关键词对所述过滤后的文本内容列表中文本内容的段落和句子进行筛选,由筛选后的文本内容确定所述目标关键词的网络文本数据,具体包括:
20.将所述过滤后的文本内容列表中文本内容中包含所述目标关键词的段落筛选出来,得到筛选后的文本段落;
21.将所述筛选后的文本段落中包含所述目标关键词的句子筛选出来,得到筛选后的关键词句子;
22.将所述筛选后的关键词句子确定为所述目标关键词的网络文本数据。
23.可选的,所述对所述搜索结果页面中的每个所述条目网址进行解析,并根据解析结果将属于设定网址类型的条目网址删除,得到目标对象列表,具体包括:
24.将所述搜索结果页面中的每个所述条目网址和对应的描述文本存储在一个item对象中;
25.由所有的item对象构建初始对象列表;
26.对所述初始对象列表中的item对象的属性进行解析,若所述item对象的网址属性中包含设定标识字段,则确定所述item对象中的条目网址的类型属于设定网址类型;所述设定标识字段包括图片、地图、音乐和视频;所述设定网址类型包括图片类型、地图类型、音乐类型和视频类型;
27.将属于设定网址类型的条目网址所属的item对象从所述初始对象列表中删除,得到目标对象列表。
28.可选的,所述根据所述目标关键词与所述目标对象列表中描述文本的关联度,对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址,具体包括:
29.计算所述目标关键词与所述目标对象列表中描述文本的关联度,所述关联度为
[0030][0031]
其中,r表示关联度;sk表示目标关键词的字数;sc表示条目网址对应的描述文本的字数;t表示目标关键词在描述文本中出现的次数;
[0032]
根据所述关联度和关联度阈值对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址。
[0033]
本发明还提供了一种网络文本数据爬虫系统,包括:
[0034]
搜索模块,用于获取目标关键词的搜索结果页面;所述搜索结果页面是将所述目标关键词输入爬虫系统的关键词搜索栏,并由所述爬虫系统自动调用搜索引擎得到的;所述搜索结果页面包括至少一个条目网址和对应的描述文本;
[0035]
第一解析模块,用于对所述搜索结果页面中的每个所述条目网址进行解析,并根据解析结果将属于设定网址类型的条目网址删除,得到目标对象列表;所述目标对象列表
用于存储删除后的条目网址和对应的描述文本;
[0036]
关联度计算模块,用于根据所述目标关键词与所述目标对象列表中描述文本的关联度,对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址;
[0037]
第二解析模块,用于采用网页解析库对所述过滤后的条目网址对应的网页进行解析,得到每个网页的文本内容列表,并根据文本概率分布和文本长度对所述文本内容列表中的文本内容进行过滤,得到过滤后的文本内容列表;
[0038]
筛选模块,用于根据所述目标关键词对所述过滤后的文本内容列表中文本内容的段落和句子进行筛选,由筛选后的文本内容确定所述目标关键词的网络文本数据。
[0039]
可选的,所述第二解析模块,具体包括:
[0040]
文本内容获取单元,用于采用beautifulsoup库中获取文本的方法得到所述过滤后的条目网址对应的网页中所有标签中的全部文本内容;
[0041]
文本划分单元,用于将所述全部文本内容按空格符划分,并将划分后的文本内容按照在网页中的先后顺序保存在文本内容列表中;
[0042]
删除项数计算单元,用于根据所述文本内容列表中划分后的文本内容的重要性的分布概率计算需删除文本的项数k;
[0043]
重要内容删选单元,用于将所述文本内容列表中的头部前k项文本内容和尾部后k项文本内容删除,得到概率分布筛选后的文本内容列表;
[0044]
短文本过滤单元,用于将所述概率分布筛选后的文本内容列表中文本长度小于设定最短长度的文本内容删除,得到过滤后的文本内容列表。
[0045]
可选的,所述筛选模块,具体包括:
[0046]
段落筛选单元,用于将所述过滤后的文本内容列表中文本内容中包含所述目标关键词的段落筛选出来,得到筛选后的文本段落;
[0047]
句子筛选单元,用于将所述筛选后的文本段落中包含所述目标关键词的句子筛选出来,得到筛选后的关键词句子;
[0048]
网络文本数据确定单元,用于将所述筛选后的关键词句子确定为所述目标关键词的网络文本数据。
[0049]
可选的,所述第一解析模块,具体包括:
[0050]
item对象构建单元,用于将所述搜索结果页面中的每个所述条目网址和对应的描述文本存储在一个item对象中;
[0051]
初始对象列表构建单元,用于由所有的item对象构建初始对象列表;
[0052]
属性解析单元,用于对所述初始对象列表中的item对象的属性进行解析,若所述item对象的网址属性中包含设定标识字段,则确定所述item对象中的条目网址的类型属于设定网址类型;所述设定标识字段包括图片、地图、音乐和视频;所述设定网址类型包括图片类型、地图类型、音乐类型和视频类型;
[0053]
网址类型过滤单元,用于将属于设定网址类型的条目网址所属的item对象从所述初始对象列表中删除,得到目标对象列表。
[0054]
可选的,关联度计算模块,具体包括:
[0055]
关联度计算单元,用于计算所述目标关键词与所述目标对象列表中描述文本的关联度,所述关联度为
[0056][0057]
其中,r表示关联度;sk表示目标关键词的字数;sc表示条目网址对应的描述文本的字数;t表示目标关键词在描述文本中出现的次数;
[0058]
网址过滤单元,用于根据所述关联度和关联度阈值对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址。
[0059]
与现有技术相比,本发明的有益效果是:
[0060]
本发明实施例提出了一种网络文本数据爬虫方法与系统,将目标关键词输入爬虫系统的关键词搜索栏,爬虫系统自动调用搜索引擎得到搜索结果页面,对于搜索结果页面中众多条目网址进行网址类型过滤、目标关键词与描述文本关联度过滤,最终从搜索结果页面中获取对关键词贡献价值高的网址,解决了当前爬虫数据来源单一和对链接的无差别获取的问题,面向搜索引擎扩大了数据获取的范围,网址过滤可以得到高价值网址进而提升数据爬取的精度和爬取速度。
附图说明
[0061]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0062]
图1为本发明实施例提供的网络文本数据爬虫方法的流程图;
[0063]
图2为本发明实施例提供的网络文本数据爬虫效果图;
[0064]
图3为本发明实施例提供的网络文本数据爬虫系统的结构图。
具体实施方式
[0065]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0066]
本发明的目的之一是面向搜索引擎对目标关键词的搜索结果页面来获取网址,获取到的大量的不同网址可以扩大数据的来源,同时使用了网址类型过滤和关键词与描述文本的关联度过滤来对网址进行筛选,进而获取到高价值的网址,用于文本数据的爬取。
[0067]
本发明目的之二是提出面向网页文本分析及过滤的文本爬虫方法,在进行网页信息爬取时,不再受限于特定的网页结构和特定标签,可以在所有类型网页的全部标签进行过滤、筛选,爬取有效文本内容。
[0068]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0069]
图1为本发明实施例提供的网络文本数据爬虫方法的流程图。
[0070]
参见图1,本实施例的网络文本数据爬虫方法,包括:
[0071]
步骤101:获取目标关键词的搜索结果页面;所述搜索结果页面是将所述目标关键
词输入爬虫系统的关键词搜索栏,并由所述爬虫系统自动调用搜索引擎得到的;所述搜索结果页面包括至少一个条目网址和对应的描述文本。具体的:
[0072]
为了方便用户使用爬虫系统对大规模的网络文本数据进行爬取,本实施例使用前后端结合的方式构建网络数据爬虫系统,使用python作为开发语言,借助django框架实现爬虫系统开发。
[0073]
首先用户需要在爬虫系统的关键词检索栏中输入目标关键词,点击“确定”后,爬虫系统利用百度搜索引擎的搜索规则,将目标关键词作为参数拼接到网址中,例如搜索的目标关键词是牦牛,就是将牦牛和起始条目序号按照一定规则设置为网址参数生成搜索结果页面第一页的第一个条目网址(www.baicu.com/s?wd=牦牛&pn=0),其中wd参数对应目标关键词,pn参数对应搜索结果页面中起始条目序号,pn从零开始计数。pn计算公式为:
[0074]
pn=(p-1)*rn(1)
[0075]
其中,p为当前页码数,rn为搜索引擎的每个搜索结果页面包含的搜索数目。
[0076]
爬虫系统的request模块使用get方法对生成的网址发起请求,会获取到目标关键词的搜索结果第一页的页面。进而根据后续步骤来对该页面中的每个条目的网址进行筛选和存储。处理完当前页后,爬虫系统会利用公式(1)对pn参数进行修改,例如百度搜索引擎中rn值为10,访问第二页时需要根据公式(1)计算pn值为10,所以系统将网址自动变更为(https://www.baidu.com/s?wd=牦牛&pn=10),进而开始对搜索结果第二页面信息进行处理。
[0077]
步骤102:对所述搜索结果页面中的每个所述条目网址进行解析,并根据解析结果将属于设定网址类型的条目网址删除,得到目标对象列表;所述目标对象列表用于存储删除后的条目网址和对应的描述文本。
[0078]
所述步骤102,具体包括:
[0079]
将所述搜索结果页面中的每个所述条目网址和对应的描述文本存储在一个item对象中;由所有的item对象构建初始对象列表;对所述初始对象列表中的item对象的属性进行解析,若所述item对象的网址属性中包含设定标识字段,则确定所述item对象中的条目网址的类型属于设定网址类型;所述设定标识字段包括图片、地图、音乐和视频;所述设定网址类型包括图片类型、地图类型、音乐类型和视频类型;将属于设定网址类型的条目网址所属的item对象从所述初始对象列表中删除,得到目标对象列表。
[0080]
在实际应用中,步骤102的具体实现过程为:
[0081]
由于搜索引擎是面向全网,搜索结果中包含多种类型网址,而图片、地图、音乐和视频等网页中不存在需要爬取的文本数据,所以首先需要将搜索结果页面中这些类型网址过滤掉,获取有价值的网址。通常这些类型网址中包含类型标识,例如图片类型网址有image字段,地图类型的网址中会包含map字段,视频类型的网址中会包含video或者tv或者vid字段。为此,首先使用xpath的路径表达式获取搜索结果页面中每个条目,对于每个条目继续使用xpath获取其对应的网址及其描述文本。例如使用路径表达式“//*/div[@class="resultc-containernew-pmd”和“//*/div[@class="result-opc-containerxpath-lognew-pmd”来获取百度搜索结果页面中每个条目,使用“./h3/a/@href”来获取条目对应的网址,使用“.//div[@class="c-abstract"]”来获取该条目的描述文本。将每个条目的网址和描述文本信息分别暂存于一个item对象中,item对象包含三个属性num、url、
abstract,分别对应条目的序号、网址和描述文本。所有条目的item对象构建list《item》列表。系统逐一处理list《item》列表中每项item,如果解析到某项item的url属性中包含map或者video、tv、vid或者image等标识字段就将该项item删掉,得到过滤掉无价值的图片、视频、地图和音乐等的条目网址,最终的list《item》列表(目标对象列表)保存的是滤除图片、视频、地图和音乐等条目后的网址和描述文本。避免爬虫系统处理这些网站内容的过程,从而提高爬虫系统效率。
[0082]
步骤103:根据所述目标关键词与所述目标对象列表中描述文本的关联度,对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址。
[0083]
步骤103,具体包括:
[0084]
计算所述目标关键词与所述目标对象列表中描述文本的关联度,所述关联度计算公式为
[0085][0086]
其中,r表示关联度;sk表示目标关键词的字数;sc表示条目网址对应的描述文本的字数;t表示目标关键词在描述文本中出现的次数。
[0087]
根据所述关联度和关联度阈值对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址。
[0088]
在实际应用中,步骤103的具体实现过程为:
[0089]
在经过网址类型过滤后,为进一步获取高价值搜索目标,本实施例引入目标关键词与其描述文本关联程度特征,利用关联度阈值rt进一步过滤无效网址,关联度阈值rt的取值为上述公式(2)中t=1时计算得到的关联度的值。一般搜索引擎允许网站或网页的描述文本字数在120字以内,本实施例基于描述文本中包含目标关键词则它的网页文本中一定包含目标关键词,相反描述文本中无目标关键词则其网页文本中一定不存在目标关键词这个机理。按照这个机理,采用上述公式(2)计算目标关键词与描述文本之间的关联度。当目标关键词的字数在描述文本中占比例较高时,表示描述文本与目标关键词关联度越大,即该网页内容更有价值。逐一取出list《item》列表中每个item对象中的描述文本,利用公式(2)计算目标关键词与其描述文本关联度,将关联度小于关联度阈值rt的item对象从list《item》列表中删除,实现网址进一步过滤,保留较高价值的条目网址。使得爬虫系统不用具体分析搜索条目的网页内容就能将无效条目过滤掉,使得爬虫系统处理效率更高。
[0090]
步骤104:采用网页解析库对所述过滤后的条目网址对应的网页进行解析,得到每个网页的文本内容列表,并根据文本概率分布和文本长度对所述文本内容列表中的文本内容进行过滤,得到过滤后的文本内容列表。
[0091]
所述步骤104,具体包括:
[0092]
采用beautifulsoup库中获取文本的方法得到所述过滤后的条目网址对应的网页中所有标签中的全部文本内容;将所述全部文本内容按空格符划分,并将划分后的文本内容按照在网页中的先后顺序保存在文本内容列表中;根据所述文本内容列表中划分后的文本内容的重要性的分布概率计算需删除文本的项数k,即非重要文本的项数;将所述文本内容列表中的头部前k项文本内容和尾部后k项文本内容删除,得到概率分布筛选后的文本内容列表,此时按文本概率分布筛选出了网页重要内容。将所述概率分布筛选后的文本内容
列表中文本长度小于设定最短长度(最短句子长度)的文本内容删除,得到过滤后的文本内容列表,此时完成了短文本过滤。其中,beautifulsoup库是一个高效的网页解析库,支持不同的解析器,比如,对html解析、对xml解析以及对html5解析。
[0093]
在实际应用中,步骤104的具体实现过程为:
[0094]
(1)按文本概率分布筛选网页重要内容
[0095]
通过不同网页分析发现不同网页主要文本内容存在于不同html标签之中,甚至不同网页中相同html标签的id、class等属性定义的规则不同,所以对于不同网页不能通过固定标签类型或标签id、class属性限定爬取哪些标签中的文本信息,否则会导致一些网页中爬不到文本数据、或爬到很多与目标关键词无关的文本数据,降低爬虫效果。针对这个问题,本实施例经过对大量网页分析发现网页重要文本内容与其在网页中的分布位置有关,既文本越靠近网页的中心位置重要性越高,越远离中心位置文本重要性越小。实践证明大多数网页的头部和尾部是导航栏、广告或者版权等信息,网页头部和尾部文本位置距离网页中心位置远,它们不是爬虫系统所要的目标文本。网页文本内容重要性符合正态分布,文本重要性的正态分布公式为:
[0096]
x~n(μ,σ2)(3)
[0097]
其中μ是重要性的均值,σ是重要性的标准差。进一步对文本重要性的正态分布进行标准化,将文本重要性变量减去其均值后除以其标准差转化成标准的正态分布,如公式(4)所示:
[0098][0099]
本实施例研究发现重要文本内容在网页中位置不仅符合正态分布规律,而且位置分布在两个标准差的范围之内的概率达到96.6%时爬取的目标文本质量最佳。重要文本的位置分布概率计算公式为公式(5):
[0100]
p
(μ-2σ)《x《(μ+2σ)
=96.6%(5)
[0101]
为了去除这些网页首尾部的非重要文本,首先要获取网页中的所有文本,发明利用beautifulsoup(html解析器)解析网页html文件,利用beautifulsoup中的get_text()方法可以获取网页中所有标签中的全部文本内容,不同标签里的文本内容之间会用空格符标记,同一标签里的不同段落文本之间用换行符标记。然后将全部文本按空格符划分,按它们在网页中的先后顺序保存在文本内容列表textlist之中。接着根据文本重要性的分布概率计算出textlist列表中头部和尾部非重要文本的项数,非重要文本的项数即需删除文本的项数k的计算公式如公式(6):
[0102][0103]
其中s为文本内容列表textlist的总项数,即列表的长度;p(x)为文本重要性在两个标准差之内的概率值,即96.6%;k表文本内容列表textlist的头部和尾部的非重要文本的项数,即需删除文本的项数。textlist列表的头部和尾部k项为非重要文本,将这2k项从textlist列表中删除,保留重要文本项。例如对于网页a中经过解析得到textlist列表项数是236,按照网页文本在列表中的顺序,导航栏和版权信息文本存储在textlist列表的前几项和后几项。那么根据公式(6)的计算需要在textlist前、后分别删除4项内容。
[0104]
(2)短文本过滤
[0105]
在去除textlist中导航栏和版权信息等无关文本内容之后,textlist的一些项中还存在不能构成句子的短文本,例如在html中《ahref=”xxx”》攻略《/a》、《strong》最新线路《/strong》、《buttontype="button"》下载《/button》等标签中的内容,由于其并不在网页首尾部,所以按步骤四处理后仍存在于textlist之中,这些文本由于无法构成一个完整的句子,不符合本实施例的爬取目标,所以这些文本需要过滤掉。
[0106]
因为一个完整的句子中至少包含主语、谓语和宾语三个组成成分,在此将设定的目标关键词看作是句子中一个成分,那么构成一个完整的句子还需要两个成分,按照汉语规则其余两个成分至少需要一个汉字充当,所以设定最短长度的计算公式如公式(7)所示:
[0107]
l=ks+2(7)
[0108]
其中ks为目标关键词的字数。通过计算得到设定最短长度l,并使用l的值对textlist文本长度小于l的项进行过滤。
[0109]
步骤105:根据所述目标关键词对所述过滤后的文本内容列表中文本内容的段落和句子进行筛选,由筛选后的文本内容确定所述目标关键词的网络文本数据。
[0110]
步骤105,具体包括:
[0111]
(1)目标关键词优先的文本段落筛选
[0112]
将所述过滤后的文本内容列表中文本内容中包含所述目标关键词的段落筛选出来,得到筛选后的文本段落。具体为:
[0113]
经过短文本过滤后的textlist中存在不含目标关键词的项,这些项首先要被过滤掉。经过第四步、第五步筛选后textlist中每一项文本段落都由多条句子构成,这些句子之间被句号、感叹号、问号等标点符号自然断开。如果将每条句子是否带有目标关键词作为真或者假条件来推理整个文本段落是否包含目标关键词,那么这些句子之间存在逻辑或关系。只需其中一条句子带有目标关键词,便可推断该文本段落包含目标关键词,相反当所有句子都不带目标关键词时才可断定整个文本段落无目标关键词,需要过滤掉。目标关键词优先的文本段落筛选是指处理文本段落时只要第一条句子中带有目标关键词,其后的所有句子就不必要处理,或者只要第二条句子中带有目标关键词,其后的所有句子就不必要处理,以此类推,直接跳到textlist的下一项中的文本段落去处理。经过目标关键词优先的文本段落筛选后textlist中所有不包含目标关键词的项全部被滤除,提升了爬虫系统处理速度。
[0114]
(2)目标关键词句子筛选与导出
[0115]
将所述筛选后的文本段落中包含所述目标关键词的句子筛选出来,得到筛选后的目标关键词句子;将所述筛选后的目标关键词句子确定为所述目标关键词的网络文本数据。具体为:
[0116]
本实施例目标是爬取互联网中所有包含目标关键词的句子,所有含目标关键词的句子构成文本数据。进过步骤(1)处理后的textlist列表的每一项文本段落都含有带目标关键词的句子,当然也有不带目标关键词的句子,所以该步骤主要任务是过滤不带目标关键词的句子。通过句子中的词语推断该条句子是否带有目标关键词,推理中这条句子所有词语之间也是逻辑或关系,即一条句子中只要匹配到目标关键词,其后的词语不必再匹配,直接跳转至下一条句子的位置开始处理,将不带目标关键词的句子过滤掉,依此类推,完成
所有目标关键词句子筛选任务,最后将这些含目标关键词的句子按处理先后顺序编号后输出到文本文件中。对于文本文件的输出,首先根据目标关键词生成文本文件名,例如目标关键词牦牛其输出文本文件名称为“牦牛.txt“,进而使用python的内置函数open(),并传入参数1:文件名,参数2:mode模式,参数3:encoding编码类型,在文本文件写入时将mode模式参数设置为”w”表示进行写入操作,由于针对中文文本所以需要将encoding编码设置为“utf-8”,该方法将在指定目录下创建该文件并打开。进一步遍历获得的句子,对于每个句子将其末尾拼接上换行符”\n”并使用write()方法将其写入目标文本文件,所有文本文件内容便构成本实施例的爬虫系统爬出的最终网络文本数据。网络文本数据爬虫效果如图2所示。
[0117]
上述实施例中的网络文本数据爬虫方法可概括为两个大的过程:
[0118]
1)根据关键词来获取搜索引擎反馈的结果页面信息,得到基于关键词的各反馈条目中网址与描述文本,面向搜索引擎的搜索结果来获取网址信息可以扩大数据的来源;其次,根据网址类型来对获取到的网址信息与描述文本进行初次过滤,去除视频、地图、图片类型网址与其对应描述文本。最后,计算关键词与各描述文本的关联度,通过关联度阈值,实现进一步过滤,得到高价值网址数据。
[0119]
2)首先,不同的网站的页面结构不同,文本分布规律也不同。因此本实施例在进行文本信息爬取时,首先分析网页文本的分布规律,根据规律过滤网页首尾无关文本信息,进一步对剩余文本中不能构成句子的短文本进行过滤;之后对剩余文本段落进行筛选,确定有效文本所在段落;最后对剩余段落中的句子进行逐个筛选,获取含关键词的目标文本句子。
[0120]
上述实施例中的网络文本数据爬虫方法,具有如下优点:
[0121]
本实施例解决了当前爬虫数据来源单一和对链接的无差别获取的问题。通过获取搜索引擎反馈结果页面中的不同条目网址来扩充文本数据的来源,通过对网址类型进行判断,过滤掉视频、图片、音乐等和对文本提取价值低的类型网址;通过各条目的描述文本与关键词的关联度分析实现对网址的进一步过滤,所以本实施例优点之一是面向搜索引擎进行网址获取,这样可以扩大数据获取的范围,同时根据网址的类型过滤和关联度分析过滤实现高价值网址获取,从而进而提升数据爬取的精度和爬取速度。
[0122]
本实施例解决了之前爬虫只针对于特定网页类型和特定标签内文本数据,不同网站不通用的问题。本实施例提出面向网页文本分析及过滤的文本爬虫方法,根据主要内容文本的分布规律去除页面首尾无关文本,之后进行短文本过滤和段落筛选,从而不断提炼高价值文本段落,进而从中获取目标文本句子。所以本实施例优点之二是在对具体页面的有效文本数据进行爬取时,避免了传统爬虫需要指定具体标签或属性的问题,在进行网页信息爬取时,不再受限于特定的网页结构和特定标签,可以在所有类型网页的全部标签进行过滤、筛选,爬取有效文本内容,使其对于不同网站具有通用性。
[0123]
本发明还提供了一种网络文本数据爬虫系统,参见图3,所述系统,包括:
[0124]
搜索模块201,用于获取目标关键词的搜索结果页面;所述搜索结果页面是将所述目标关键词输入爬虫系统的关键词搜索栏,并由所述爬虫系统自动调用搜索引擎得到的;所述搜索结果页面包括至少一个条目网址和对应的描述文本。
[0125]
第一解析模块202,用于对所述搜索结果页面中的每个所述条目网址进行解析,并
根据解析结果将属于设定网址类型的条目网址删除,得到目标对象列表;所述目标对象列表用于存储删除后的条目网址和对应的描述文本。
[0126]
关联度计算模块203,用于根据所述目标关键词与所述目标对象列表中描述文本的关联度,对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址。
[0127]
第二解析模块204,用于采用网页解析库对所述过滤后的条目网址对应的网页进行解析,得到每个网页的文本内容列表,并根据文本概率分布和文本长度对所述文本内容列表中的文本内容进行过滤,得到过滤后的文本内容列表。
[0128]
筛选模块205,用于根据所述目标关键词对所述过滤后的文本内容列表中文本内容的段落和句子进行筛选,由筛选后的文本内容确定所述目标关键词的网络文本数据。
[0129]
其中,所述第二解析模块204,具体包括:
[0130]
文本内容获取单元,用于采用beautifulsoup库中获取文本的方法得到所述过滤后的条目网址对应的网页中所有标签中的全部文本内容。
[0131]
文本划分单元,用于将所述全部文本内容按空格符划分,并将划分后的文本内容按照在网页中的先后顺序保存在文本内容列表中。
[0132]
删除项数计算单元,用于根据所述文本内容列表中划分后的文本内容的重要性的分布概率计算需删除文本的项数k。
[0133]
重要内容删选单元,用于将所述文本内容列表中的头部前k项文本内容和尾部后k项文本内容删除,得到概率分布筛选后的文本内容列表。
[0134]
短文本过滤单元,用于将所述概率分布筛选后的文本内容列表中文本长度小于设定最短长度的文本内容删除,得到过滤后的文本内容列表。
[0135]
其中,所述筛选模块205,具体包括:
[0136]
段落筛选单元,用于将所述过滤后的文本内容列表中文本内容中包含所述目标关键词的段落筛选出来,得到筛选后的文本段落。
[0137]
句子筛选单元,用于将所述筛选后的文本段落中包含所述目标关键词的句子筛选出来,得到筛选后的关键词句子。
[0138]
网络文本数据确定单元,用于将所述筛选后的关键词句子确定为所述目标关键词的网络文本数据。
[0139]
其中,所述第一解析模块202,具体包括:
[0140]
item对象构建单元,用于将所述搜索结果页面中的每个所述条目网址和对应的描述文本存储在一个item对象中。
[0141]
初始对象列表构建单元,用于由所有的item对象构建初始对象列表。
[0142]
属性解析单元,用于对所述初始对象列表中的item对象的属性进行解析,若所述item对象的网址属性中包含设定标识字段,则确定所述item对象中的条目网址的类型属于设定网址类型;所述设定标识字段包括图片、地图、音乐和视频;所述设定网址类型包括图片类型、地图类型、音乐类型和视频类型。
[0143]
网址类型过滤单元,用于将属于设定网址类型的条目网址所属的item对象从所述初始对象列表中删除,得到目标对象列表。
[0144]
其中,关联度计算模块204,具体包括:
[0145]
关联度计算单元,用于计算所述目标关键词与所述目标对象列表中描述文本的关
联度,所述关联度为
[0146][0147]
其中,r表示关联度;sk表示目标关键词的字数;sc表示条目网址对应的描述文本的字数;t表示目标关键词在描述文本中出现的次数。
[0148]
网址过滤单元,用于根据所述关联度和关联度阈值对所述目标对象列表中删除后的条目网址进行过滤,得到过滤后的条目网址。
[0149]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0150]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1