CN103942335B - 一种针对网页结构变化的不间断爬虫系统构建方法 - Google Patents
一种针对网页结构变化的不间断爬虫系统构建方法 Download PDFInfo
- Publication number
- CN103942335B CN103942335B CN201410190386.7A CN201410190386A CN103942335B CN 103942335 B CN103942335 B CN 103942335B CN 201410190386 A CN201410190386 A CN 201410190386A CN 103942335 B CN103942335 B CN 103942335B
- Authority
- CN
- China
- Prior art keywords
- node
- text
- web page
- content
- under
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种针对网页结构变化的不间断爬虫系统构建方法,本发明在数据抽取的过程中,并不依赖于具体的标签节点,而是通过计算的方法来寻找目标节点;利用节点剪枝和相似哈希的方法锁定标题节点;然后,迭代计算相关节点的上下文主题相关度值TTR,得到目标抽取模块的节点;最后,使用正则表达式以及库匹配的方法实现对时间和新闻来源的信息的获取,在库匹配的过程中,使用了库动态增长的方法;同时,在目标抽取节点下的剩余节点中,过滤掉所有噪声节点,便得到网页文本的正文信息;本发明提供的技术方法主要应用于舆情监测系统中,对其他用途的网络爬虫具有一定参考价值。
Description
技术领域
本发明涉及一种爬虫系统构建方法,具体的为一种针对网页结构变化的不间断爬虫系统构建方法。
背景技术
网络爬虫是各种搜索引擎能够实现的先驱技术,大数据时代的来临以及互联网技术的飞速发展,使得网络爬虫具有更重大的研究意义。应对网页数据量增幅大、网络文本更新周期短以及网页结构动态变化等一系列挑战,高效率且不间断工作的网络爬虫成为Web信息挖掘的研究热点。
目前,网络爬虫基本上都是基于页面结构实现数据获取的。通过获取网页文档,将网页文档解析成DOM树的形式,根据DOM树的规则,HTML文档中的所有元素都用节点来表示。根据DOM树构建抽取规则,实现数据抽取。在数据抽取的过程中,由于网页信息源的异构性,为了不损失抽取精度,需要针对每个网站都构造相应的抽取规则。这样爬虫的覆盖率会十分低,极大地限制了网络资源获取的可能性。基于DOM树的网络页面获取技术能够提高数据获取的效率和系统资源利用率。但是,在数据抽取的时候会依赖该页面具体的标签节点,一旦对应的页面结构发生变化或者出现新的标签节点命名规则,不但使爬虫获取不到正确的数据,还会进一步导致爬虫停止数据获取的工作。
如何在利用DOM树规则快速抽取数据的便利性、针对异构信息源构建通用的抽取规则以及保证爬虫在页面结构动态变化的时候能够不间断工作,目前在本领域尚未出现解决的方法。
发明内容
本发明为了解决上述的技术问题,提出了一种针对网页结构变化的不间断爬虫系统构建方法。
本发明的技术方案是:一种针对网页结构变化的不间断爬虫系统构建方法,包括如下步骤:
步骤1,爬虫根据用户自定义数据抽取的入口地址,获取对应的HTML页面,并调用HTML解析器将HTML页面解析成DOM树;
步骤2,构造一个网页节点剪枝器,对网页文档节点剪枝,过滤掉所有与正文无关的JavaScript、超链接以及CSS所在的节点;
步骤3,抽取特定节点<title|TITLE>下的内容,计算该内容所有词的特征值,并映射为16位的信息指纹,根据相似哈希的计算方法计算该内容的相似哈希值T;然后,自上至下逐个对剪枝后的其他节点进行相同处理,获取对应的相似哈希值Ni;比对T与Ni,差值小于阈值的节点即为目标抽取文本的标题节点;
步骤4,设定标题节点为起始节点,自底向上迭代计算各节点的上下文主题相关度值TTR,找到TTR值最大的节点,该节点即为目标抽取模块节点;相关度值TTR的计算公式为:
其中,TTR(ni)表示当前节点的上下文主题相关度,ContentCount(ni)表示当前节点下的字符数,ContentCount(Pni)则表示当前节点的父节点下的字符数;
步骤5,根据确定的目标抽取模块,分别利用正则表达式和库匹配方法实现对目标节点下发布时间以及新闻来源字段的提取,库匹配流程实现信息发布源数据库的动态增长;最后,提取大块的正文文本内容。
所述的步骤2中,对于超链接节点的剪枝处理通过下述公式计算:
其中,LinkContent(i)表示当前节点下超链接文本的字符数,Content(i)则表示当前节点下所有的字符数;如果E(i)=1,则是与文本无关的纯超链接节点,在数据抽取的时候直接过滤掉,否则不做处理。
本发明的有益效果是:一种针对网页结构变化的不间断爬虫系统构建方法,在数据抽取的过程中,并不依赖于具体的标签节点,而是通过计算的方法来寻找目标节点。利用节点剪枝和相似哈希的方法锁定标题节点。然后,迭代计算相关节点的上下文主题相关度值TTR,得到目标抽取模块的节点。最后,使用正则表达式以及库匹配的方法实现对时间和新闻来源的信息的获取,在库匹配的过程中,使用了库动态增长的方法。同时,在目标抽取节点下的剩余节点中,过滤掉所有噪声节点,便得到网页文本的正文信息。本发明提供的技术方法主要应用于舆情监测系统中,对其他用途的网络爬虫具有一定参考价值。
附图说明
图1为本发明的系统构建方法流程图;
图2为信息发布源的库动态增长流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
1.如图1所示,用户自定义获取数据的目标网站的入口地址文件,爬虫读取该文件。在实施例中,爬虫根据提供的入口网址,获取该入口下所有的页面;并调用HTML解析器将页面解析成DOM树的形式,包含元素节点、文本节点、属性节点和注释节点。
2.构造一个网页节点剪枝器,对网页文档节点剪枝,过滤掉所有与正文无关的JavaScript、超链接以及CSS所在的节点;对JavaScript、CSS标签节点采取直接过滤掉的办法,这些标签全部都是文本主题无关的内容。对于超链接节点的剪枝处理通过下述公式计算:
其中,LinkContent(i)表示当前节点下超链接文本的字符数,Content(i)则表示当前节点下所有的字符数;如果E(i)=1,则是与文本无关的纯超链接节点,在数据抽取的时候直接过滤掉,否则不做处理。
3.经过剪枝后,整个文档的节点数量下降到一定水平。接下来,基于相似哈希的方法来锁定文本标题所在的节点。具体的方法是:抽取特定节点<title|TITLE>下的内容,计算该内容所有词的特征值,并映射为16位的信息指纹,根据相似哈希的计算方法计算该内容的相似哈希值T;然后,自上至下逐个对剪枝后的其他节点进行相同处理,获取对应的相似哈希值Ni;比对T与Ni,差值小于一定阈值的节点即为目标抽取文本的标题节点。
4.计算和分析得到标题所在的节点之后,可以知道该节点位于目标抽取模块之内,设定标题节点为起始节点,自底向上迭代计算各节点的上下文主题相关度值TTR,其计算公式为:
其中,TTR(ni)表示当前节点的上下文主题相关度,ContentCount(ni)表示当前节点下的字符数,ContentCount(Pni)则表示当前节点的父节点下的字符数。由网页结构的特征可以得出,当节点TTR值最大的时候,该节点即为包含正文、标题在内的目标抽取节点。
5.以新浪、腾讯、网易等各大门户网站的新闻信息为例,目标抽取节点即按照步骤4计算出来的某一个DIV标签节点,新闻的发布时间以及信息来源位于目标抽取节点下的子节点中。由于时间有一定的格式,利用正则表达式的匹配方法能够快速锁定和抽取对应信息。如:2014年4月24日10:31,包括年月日时分,用对应的正则表达式:[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}[0-9]{1,2}:[0-9]{1,2}来匹配该内容,定义覆盖所有可能时间格式的正则匹配式,应对异构网页源的所有时间数据。新闻来源信息同样位于目标抽取节点的某一个子节点中,该信息从文本角度上来说没有特别的格式或者特征,但是对应一定的信息发布源。所以建立对应的信息发布源库,人工添加一定的信息发布源;同时如图2所示,每次在新闻来源字段抽取的时候,都会与信息发布源库进行匹配,如果匹配成功,则保留对应的节点标签值,并将新闻来源字段存入到信息发布源数据库;如果在库中匹配不到新闻来源字段,则根据相同的目标抽取节点的标签值以及新闻来源节点的标签值来确定要抽取的内容,同样将对应的信息存入到信息发布源数据库,实现库的动态增长。
在实施例中,标题节点的父节点即为目标抽取节点,标题、新闻来源以及发布时间等字段都被成功抽取之后,目标抽取节点中除正文文本之外的节点都是噪声节点,过滤掉所有的JS、CSS以及超链接节点,即得到正文的文本内容。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (2)
1.一种针对网页结构变化的不间断爬虫系统构建方法,其特征在于,包括如下步骤:
步骤1,爬虫根据用户自定义数据抽取的入口地址,获取对应的HTML页面,并调用HTML解析器将HTML页面解析成DOM树;
步骤2,构造一个网页节点剪枝器,对网页文档节点剪枝,过滤掉所有与正文无关的JavaScript、超链接以及CSS所在的节点;
步骤3,抽取特定节点<title|TITLE>下的内容,计算该内容所有词的特征值,并映射为16位的信息指纹,根据相似哈希的计算方法计算该内容的相似哈希值T;然后,自上至下逐个对剪枝后的其他节点进行相同处理,获取对应的相似哈希值Ni;比对T与Ni,差值小于阈值的节点即为目标抽取文本的标题节点;
步骤4,设定标题节点为起始节点,自底向上迭代计算各节点的上下文主题相关度值TTR,找到TTR值最大的节点,该节点即为目标抽取模块节点;相关度值TTR的计算公式为:
其中,TTR(ni)表示当前节点的上下文主题相关度,ContentCount(ni)表示当前节点下的字符数,ContentCount(Pni)则表示当前节点的父节点下的字符数;
步骤5,根据确定的目标抽取模块,分别利用正则表达式和库匹配方法实现对目标抽取模块节点下发布时间以及新闻来源字段的提取,库匹配流程实现信息发布源数据库的动态增长;最后,提取大块的正文文本内容。
2.根据权利要求1所述的一种针对网页结构变化的不间断爬虫系统构建方法,
其特征于:所述的步骤2中,对于超链接节点的剪枝处理通过下述公式计算;
其中,LinkContent(i)表示当前节点下超链接文本的字符数,Content(i)则表示当前节点下所有的字符数;如果E(i)=1,则是与文本无关的纯超链接节点,在数据抽取的时候直接过滤掉,否则不做处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410190386.7A CN103942335B (zh) | 2014-05-07 | 2014-05-07 | 一种针对网页结构变化的不间断爬虫系统构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410190386.7A CN103942335B (zh) | 2014-05-07 | 2014-05-07 | 一种针对网页结构变化的不间断爬虫系统构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942335A CN103942335A (zh) | 2014-07-23 |
CN103942335B true CN103942335B (zh) | 2017-04-26 |
Family
ID=51190003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410190386.7A Expired - Fee Related CN103942335B (zh) | 2014-05-07 | 2014-05-07 | 一种针对网页结构变化的不间断爬虫系统构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103942335B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408198B (zh) * | 2014-12-15 | 2018-07-17 | 北京国双科技有限公司 | 网页页面内容的获取方法和装置 |
CN104933168B (zh) * | 2015-06-30 | 2018-08-14 | 南京烽火星空通信发展有限公司 | 一种网页内容自动采集方法 |
CN105302876A (zh) * | 2015-09-28 | 2016-02-03 | 孙燕群 | 基于正则表达式的url过滤方法 |
CN108090080A (zh) * | 2016-11-22 | 2018-05-29 | 北京京东尚科信息技术有限公司 | 用于替换解析模板的方法与系统及爬取方法 |
CN106777281B (zh) * | 2016-12-29 | 2020-07-17 | 深圳市华傲数据技术有限公司 | 用于提高网络爬虫稳定性、可用性的数据处理方法及装置 |
CN106815349B (zh) * | 2017-01-19 | 2021-04-23 | 银联国际有限公司 | 基于哈希算法和正则匹配的时间过滤方法及事件过滤方法 |
CN107016102B (zh) * | 2017-04-12 | 2019-12-03 | 成都四方伟业软件股份有限公司 | 一种大数据网络爬虫分页配置方法 |
CN109597972B (zh) * | 2018-12-10 | 2023-05-30 | 杭州全维技术股份有限公司 | 一种基于网页框架的网页动态变化和篡改检测方法 |
CN110377515B (zh) * | 2019-07-13 | 2022-10-21 | 北京海致星图科技有限公司 | 一种测试爬虫数据质量的方法 |
CN112373460B (zh) * | 2020-11-17 | 2021-10-26 | 东风汽车集团有限公司 | 基于场景变化动态调整阈值的车辆侧翻预警方法及系统 |
CN112597353B (zh) * | 2020-12-18 | 2024-03-08 | 武汉大学 | 一种文本信息自动提取方法 |
CN112887381B (zh) * | 2021-01-15 | 2022-07-19 | 中国地质大学(武汉) | 用于面向特定网络入口的新内容检测和汇聚方法及装置 |
CN113641884A (zh) * | 2021-08-10 | 2021-11-12 | 南方电网数字电网研究院有限公司 | 基于语义的电力计量数据处理方法、装置和计算机设备 |
CN113987320B (zh) * | 2021-11-24 | 2024-06-04 | 宁波深擎信息科技有限公司 | 基于智能页面解析的实时资讯爬虫方法、装置及设备 |
CN113934914B (zh) * | 2021-12-20 | 2022-03-01 | 成都橙视传媒科技股份公司 | 一种针对新闻媒体批量加密数据的采集方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765236B2 (en) * | 2007-08-31 | 2010-07-27 | Microsoft Corporation | Extracting data content items using template matching |
CN101826110A (zh) * | 2010-04-13 | 2010-09-08 | 北京大学 | 一种BitTorrent种子文件爬取方法 |
CN102646129A (zh) * | 2012-03-09 | 2012-08-22 | 武汉大学 | 一种主题相关的分布式网络爬虫系统 |
CN103530429A (zh) * | 2013-11-04 | 2014-01-22 | 北京中搜网络技术股份有限公司 | 一种网页正文抽取的方法 |
-
2014
- 2014-05-07 CN CN201410190386.7A patent/CN103942335B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765236B2 (en) * | 2007-08-31 | 2010-07-27 | Microsoft Corporation | Extracting data content items using template matching |
CN101826110A (zh) * | 2010-04-13 | 2010-09-08 | 北京大学 | 一种BitTorrent种子文件爬取方法 |
CN102646129A (zh) * | 2012-03-09 | 2012-08-22 | 武汉大学 | 一种主题相关的分布式网络爬虫系统 |
CN103530429A (zh) * | 2013-11-04 | 2014-01-22 | 北京中搜网络技术股份有限公司 | 一种网页正文抽取的方法 |
Non-Patent Citations (2)
Title |
---|
基于DOM的html网页正文信息抽取模块的设计与实现;苏小鲁;《中国优秀硕士学位论文全文数据库-信息科技辑》;20120415(第4期);第1-34页 * |
结合网页结构与文本特征的正文提取方法;熊忠阳;《计算机工程》;20131231;第39卷(第12期);第200-210页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103942335A (zh) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103942335B (zh) | 一种针对网页结构变化的不间断爬虫系统构建方法 | |
Liu et al. | Author name disambiguation for p ub m ed | |
Ma et al. | Characterizing the heterogeneity of the OpenStreetMap data and community | |
CN103023714B (zh) | 基于网络话题的活跃度与集群结构分析系统及方法 | |
CN101950312B (zh) | 一种互联网网页内容解析方法 | |
CN102129479B (zh) | 一种基于概率潜在语义分析模型的万维网服务发现方法 | |
CN106844786A (zh) | 一种基于文本相似度的舆情地域热点发现方法 | |
CN105677710A (zh) | 大数据的处理方法和系统 | |
CN104462540B (zh) | 网页信息抽取方法 | |
CN102402566A (zh) | 基于中文网页自动分类技术的Web用户行为分析方法 | |
CN105468744A (zh) | 一种实现税务舆情分析和全文检索的大数据平台 | |
Al-Taie et al. | Online data preprocessing: A case study approach | |
CN110970112B (zh) | 一种面向营养健康的知识图谱构建方法和系统 | |
Risse et al. | The ARCOMEM architecture for social-and semantic-driven web archiving | |
Ma et al. | Automatic parsing and utilization of system log features in log analysis: A survey | |
Byun et al. | A new bloom filter architecture for FIB lookup in named data networking | |
Feng et al. | An efficient blockchain transaction retrieval system | |
Chen et al. | Distributed attack modeling approach based on process mining and graph segmentation | |
Ghanem et al. | Automatic short text summarization techniques in social media platforms | |
CN104156458B (zh) | 一种信息的提取方法及装置 | |
Intxaurrondo et al. | Diamonds in the rough: Event extraction from imperfect microblog data | |
Zhu et al. | Integrating land-cover products based on ontologies and local accuracy | |
CN109614535B (zh) | 一种基于Scrapy框架的网络数据的采集方法及装置 | |
CN103377207B (zh) | 基于脚本引擎的微博用户关系采集方法 | |
Fan et al. | EARS-DM: efficient auto correction retrieval scheme for data management in edge computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170426 Termination date: 20180507 |