CN104933168A - 一种网页内容自动采集方法 - Google Patents
一种网页内容自动采集方法 Download PDFInfo
- Publication number
- CN104933168A CN104933168A CN201510369634.9A CN201510369634A CN104933168A CN 104933168 A CN104933168 A CN 104933168A CN 201510369634 A CN201510369634 A CN 201510369634A CN 104933168 A CN104933168 A CN 104933168A
- Authority
- CN
- China
- Prior art keywords
- node
- web page
- author
- collector
- webpage
- 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.)
- Granted
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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Abstract
本发明公开了一种网页内容自动采集方法,包括:根据需要进行内容采集的网页URL查找与该网页所在网站相匹配的采集器集合;当存在相匹配的采集器时,执行采集器,获取网页内容;当不存在相匹配的采集器时,查找未匹配采集器集合,从未匹配采集器集合中选择采集器并执行采集器,获取网页内容;采集成功后,输出网页内容的采集结果;当采集不成功时,重新选择采集器。本发明中的网页自动采集系统框架,支持扩展其它多个网页采集器,极大的提高了系统的可维护性,降低了维护成本与风险,优化了采集系统结构,简化采集处理流程,为大规模采集系统提供了新的高效解决方案。
Description
技术领域
本发明公开了一种网页内容自动采集方法,涉及互联网数据处理技术领域。
背景技术
随着科技的进步,互联网信息进入一个爆炸式、多元式的时代,互联网成为一个巨大的信息库,互联网信息采集可以使您在信息采集、资源整合、资金利用、人力投入等方面节约大量资源,广泛应用于行业门户网站信息采集、竞争对手情报数据搜集、网站内容系统建设、垂直搜索、舆情监测、科研等领域。
以新闻网页为例,常规的新闻网页内容采集程序工作时,依赖于人工提供每个不同新闻站点的页面解析模板,格式定义文件中定义了新闻网页中所有有效数据项的xpath,如新闻标题、正文、作者、发表时间。维护新闻站点页面解析模板是非常枯燥的,而且如果采集程序覆盖的站点越多,工作量越大。而且若新闻站点改版后,原有的页面解析模板文件也就随之‘过期’,需要重新订制,但是往往很难及时发现并重新订制,导致一旦某个新闻站点改版,那么在发现之前,这些新闻站点的数据都将异常甚至丢失。
现有的新闻站点因为格式多样化,数据量爆炸式膨胀,监控严格等,导致收集难度加大,主要表现在:
1、需要人工配置新闻网页解析模板,制定对应信息的xpath。
2、网站的海量信息抓取,规则难以统一制定。一般会针对每个站点单独配置解析模板,工作量大;
3、后继带来了海量的规则维护工作,以及站点改版后规则要实时更新的问题;
4、若不能够及时发现新闻站点改版,那么采集这些新闻站点的数据将会出现异常。
现有常规新闻网页采集都需要通过针对所有站点订制解析模板,所有的订制和后继维护工作繁琐而枯燥,且若不能及时适应站点的改版,导致无法有效采集数据,对于大型的采集系统这些问题尤为突出,急需通过新的技术方法来取代人工的维护工作。
发明内容
本发明所要解决的技术问题是:针对现有技术的缺陷,提供一种网页内容自动采集方法,通过可扩展的方式,支持多种类型的网页通用采集器,每个网页通用采集器都是以不同的算法实现页面通用采集,而算法则是通过网页的共同特征抽象而来。
本发明为解决上述技术问题采用以下技术方案:
一种网页内容自动采集方法,具体步骤包括:
步骤一、根据需要进行内容采集的网页URL查找与该网页所在网站相匹配的采集器集合;
步骤二、当存在相匹配的采集器时,执行采集器,获取网页内容;当不存在相匹配的采集器时,查找未匹配采集器集合,从未匹配采集器集合中选择采集器并执行采集器,获取网页内容;
步骤三、采集成功后,输出网页内容的采集结果;当采集不成功时,返回步骤二,重新选择采集器。
作为本发明的进一步优选方案,所述步骤二中,采集器的识别流程包括:
1、访问目标网页页面,并获取页面字节流;
2、将字节流解析成dom对象,将dom中所有Element对应html标签,记录html标签的所有属性和值;
3、通过dom对象中的title节点,确认标题范围,其中,所述title节点的Xpath为://HTML/HEAD/TITLE;
再通过查找h节点,比对title节点,确认网页的标题xpath,其中,所述h节点的Xpath为://BODY//*[name()='H*'];
当title节点的值包含h节点的值时,h节点即为网页的标题节点,h节点的xpath即为网页标题的xpath;
4、以h节点为起点,查找发表时间节点;
5、以h节点为起点,扫描h节点的祖父节点对应的所有子节点,查找文本值长度最长的节点,将其确定为网页正文节点;
6、确认作者节点,用“作者节点特征匹配”方式以h节点为起点,扫描h节点的父节点的所有子节点,匹配子节点的文本值是否符合作者节点特征,若符合,则确认该子节点为作者节点;
7、根据网页的标题、发表时间节点、正文节点和作者节点,识别出网页内容相匹配的采集器。
作为本发明的进一步优选方案,当步骤6中使用“作者节点特征匹配”方式没有成功确认作者节点时,则使用“位置猜测”方式确认作者节点:
以发表节点为起点,分析发表节点在其兄弟节点中的位置,来确定作者节点:
a、若发表节点的兄弟节点有多个,且发表节点在所述多个节点中排名在一半之前,则确定发表节点的下一个兄弟节点就是作者节点;
b、若发表节点的兄弟节点有多个,且发表节点在所述多个节点中排名在一半之后,则确定发表节点的前一个兄弟节点就是作者节点。
作为本发明的进一步优选方案,所述步骤4中发表时间节点的确认具体方法为:
从h节点的所有子节点中查找时间节点,若查找到,则完成发表时间节点的确认;
否则,继续从h节点的所有兄弟节点及其所有子节点中查找时间节点,若查找到,则完成发表时间节点的确认。
作为本发明的进一步优选方案,所述步骤4中发表时间节点的确认算法具体为:
通过常用时间格式正则表达式来匹配节点的值,若能够匹配命中,则该节点即确认为发表时间节点。
作为本发明的进一步优选方案,所述步骤5确定网页正文节点的过程中,还包括对所有节点按照噪音节点标准进行去噪处理,将不合理的节点排除,所述噪音节点标准具体为:
(1)凡节点的值中含有javaScript特征的节点;
(2)凡节点的值中含有的标点符号数量小于设定阈值的节点。
作为本发明的进一步优选方案,所述步骤6中作者节点的判断方法包括:
1)节点的值中含有设定的特征字符串,包括“作者:”、“来源:”或者“责任编辑:”;
2)节点的值长度小于阈值。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1、本发明中的网页自动采集系统框架,支持扩展其它多个网页采集器,极大的提高了系统的可维护性,降低了维护成本与风险,优化了采集系统结构,简化采集处理流程,为大规模采集系统提供了新的高效解决方案。
2、本发明中的网页通用采集器算法,通过自动解析html结构能够处理绝大部分的站点,有效的提高了采集效率,并且可作为独立组件运行于多种系统,例如新闻网页网站中。
附图说明
图1是本发明中网页内容自动采集的方法流程图。
图2是本发明中网页通用采集器处理流程图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明中网页内容自动采集的方法流程图如图1所示,在具体实施例中,以新闻网站的内容采集为例。所述网页内容自动采集方法,具体步骤包括:
步骤一、根据需要进行内容采集的网页URL查找与该网页所在网站相匹配的采集器集合;
步骤二、当存在相匹配的采集器时,执行采集器,获取网页内容;当不存在相匹配的采集器时,查找未匹配采集器集合,从未匹配采集器集合中选择采集器并执行采集器,获取网页内容;
步骤三、采集成功后,输出网页内容的采集结果;当采集不成功时,返回步骤二,重新选择采集器。
本发明中网页通用采集器处理流程图如图2所示,
1、互联网访问目标新闻网页页面,并获取页面字节流。
2、将字节流解析成dom对象,dom中所有Element中对应html标签,且拥有html标签的所有属性和值。dom是一种用XML的独特java工具包,包含java语言的语法乃至语义,实现XML文件解析。html是超文本标记语言,构成网页文档的主要语言,可以包含文字、图形、动画、声音、表格、链接等。
3、确认标题节点:
通过dom对象中【//HTML/HEAD/TITLE】节点,下文中简称title节点,确认标题范围;再通过查找【//BODY//*[name()='H*']】节点,下文中简称h节点,比对title节点,确认新闻标题xpath。
若title节点的值包含h节点的值,则h节点就是新闻标题节点,该节点的xpath就是新闻标题的xpath。
4、确认发表时间节点:
以h节点为起点,查找发表时间节点,下文简称postTime节点,步骤如下;
首先,从h节点的所有子节点中查找时间节点;若查找到,则完成发表时间节点的确认;否则,继续从h节点的所有兄弟节点及其所有子节点中查找时间节点;若查找到,则完成发表时间节点的确认,否则采集失败。
发表时间节点确认算法:通过常用时间格式正则表达式来匹配节点的值,若能够匹配命中,则该节点即确认为发表时间节点。
常用时间格式正则表达式示例:
\\d{2,4}\\D\\d{1,2}\\D\\d{1,2}\\D{1,6}\\d{1,2}:\\d{1,2}:\\d{1,2}
5、确认正文节点:
以h节点为起点,扫描h节点的祖父节点(父节点的父节点)的所有子节点,查找文本值长度最长的节点,确定其为新闻正文节点。
需要对所有节点按照噪音节点标准进行去噪处理,即将不合理的节点排除。
噪音节点标准:
(1)凡节点的值中含有javaScript特征(如:document.write)的节点;
(2)凡节点的值中含有的标点符号数量小于阈值(如:4)的节点;
6、确认作者节点:
首先,用“作者节点特征匹配”方式:以h节点为起点,扫描h节点的父节点的所有子节点,匹配子节点的文本值是否符合作者节点特征,若符合,则确认该子节点为作者节点。
作者节点特征:
1)节点的值中含有“作者:”、“来源:”或“责任编辑:”等等特征字符串;
2)节点的值长度必须小于阈值(如:32)。
若用“作者节点特征匹配”方式没有成功确认作者节点,则使用“位置猜测”方式确认作者节点,即一般情况下作者节点存在于发表时间节点周围。
“位置猜测”方式:以postTime节点为起点,分析postTime节点在其兄弟节点中的位置,来确定作者节点:
a、若postTime节点的兄弟节点仅有其自身,确认作者节点失败;
b、若postTime节点的兄弟节点有多个,且postTime节点在其中排名靠前(即在前一半中),则确定postTime节点的下一个兄弟节点就是作者节点;
c、若postTime节点的兄弟节点有多个,且postTime节点在其中排名靠后(即在后一半中),则确定postTime节点的前一个兄弟节点就是作者节点。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
Claims (7)
1.一种网页内容自动采集方法,其特征在于,具体步骤包括:
步骤一、根据需要进行内容采集的网页URL查找与该网页所在网站相匹配的采集器集合;
步骤二、当存在相匹配的采集器时,执行采集器,获取网页内容;当不存在相匹配的采集器时,查找未匹配采集器集合,从未匹配采集器集合中选择采集器并执行采集器,获取网页内容;
步骤三、采集成功后,输出网页内容的采集结果;当采集不成功时,返回步骤二,重新选择采集器。
2.如权利要求1所述的一种网页内容自动采集方法,其特征在于,所述步骤二中,采集器的识别流程包括:
(1)、访问目标网页页面,并获取页面字节流;
(2)、将字节流解析成dom对象,将dom中所有Element对应html标签,记录html标签的所有属性和值;
(3)、通过dom对象中的title节点,确认标题范围,其中,所述title节点的Xpath为://HTML/HEAD/TITLE;
再通过查找h节点,比对title节点,确认网页的标题xpath,其中,所述h节点的Xpath为://BODY//*[name()='H*'];
当title节点的值包含h节点的值时,h节点即为网页的标题节点,h节点的xpath即为网页标题的xpath;
(4)、以h节点为起点,查找发表时间节点;
(5)、以h节点为起点,扫描h节点的祖父节点对应的所有子节点,查找文本值长度最长的节点,将其确定为网页正文节点;
(6)、确认作者节点,用“作者节点特征匹配”方式以h节点为起点,扫描h节点的父节点的所有子节点,匹配子节点的文本值是否符合作者节点特征,若符合,则确认该子节点为作者节点;
(7)、根据网页的标题、发表时间节点、正文节点和作者节点,识别出网页内容相匹配的采集器。
3.如权利要求2所述的一种网页内容自动采集方法,其特征在于,当步骤6中使用“作者节点特征匹配”方式没有成功确认作者节点时,则使用“位置猜测”方式确认作者节点:
以发表节点为起点,分析发表节点在其兄弟节点中的位置,来确定作者节点:
a、若发表节点的兄弟节点有多个,且发表节点在所述多个节点中排名在一半之前,则确定发表节点的下一个兄弟节点就是作者节点;
b、若发表节点的兄弟节点有多个,且发表节点在所述多个节点中排名在一半之后,则确定发表节点的前一个兄弟节点就是作者节点。
4.如权利要求1或2所述的一种网页内容自动采集方法,其特征在于,所述步骤4中发表时间节点的确认具体方法为:
从h节点的所有子节点中查找时间节点,若查找到,则完成发表时间节点的确认;
否则,继续从h节点的所有兄弟节点及其所有子节点中查找时间节点,若查找到,则完成发表时间节点的确认。
5.如权利要求4所述的一种网页内容自动采集方法,其特征在于,所述步骤4中发表时间节点的确认算法具体为:
通过常用时间格式正则表达式来匹配节点的值,若能够匹配命中,则该节点即确认为发表时间节点。
6.如权利要求1或2所述的一种网页内容自动采集方法,其特征在于,所述步骤5确定网页正文节点的过程中,还包括对所有节点按照噪音节点标准进行去噪处理,将不合理的节点排除,所述噪音节点标准具体为:
(1)凡节点的值中含有javaScript特征的节点;
(2)凡节点的值中含有的标点符号数量小于设定阈值的节点。
7.如权利要求1或3所述的一种网页内容自动采集方法,其特征在于,所述步骤6中作者节点的判断方法包括:
1)节点的值中含有设定的特征字符串,包括“作者:”、“来源:”或者“责任编辑:”;
2)节点的值长度小于阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510369634.9A CN104933168B (zh) | 2015-06-30 | 2015-06-30 | 一种网页内容自动采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510369634.9A CN104933168B (zh) | 2015-06-30 | 2015-06-30 | 一种网页内容自动采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104933168A true CN104933168A (zh) | 2015-09-23 |
CN104933168B CN104933168B (zh) | 2018-08-14 |
Family
ID=54120335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510369634.9A Active CN104933168B (zh) | 2015-06-30 | 2015-06-30 | 一种网页内容自动采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104933168B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874346A (zh) * | 2016-12-26 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 网页中的页面正文提取方法和装置 |
CN107133310A (zh) * | 2017-04-28 | 2017-09-05 | 安徽博约信息科技股份有限公司 | 僵尸网站的检测方法 |
CN107784056A (zh) * | 2017-02-20 | 2018-03-09 | 平安科技(深圳)有限公司 | 页面数据查找方法及装置 |
CN108153851A (zh) * | 2017-12-21 | 2018-06-12 | 北京工业大学 | 一种基于规则和语义的通用论坛主题帖页面信息抽取方法 |
CN108268433A (zh) * | 2018-02-26 | 2018-07-10 | 杭州数梦工场科技有限公司 | 基于网页文章的标题抽取方法及装置 |
CN109325201A (zh) * | 2018-08-15 | 2019-02-12 | 北京百度网讯科技有限公司 | 实体关系数据的生成方法、装置、设备及存储介质 |
CN110717131A (zh) * | 2018-06-27 | 2020-01-21 | 北京国双科技有限公司 | 页面改版的监控方法及相关系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060112125A1 (en) * | 2001-12-21 | 2006-05-25 | Potok Thomas E | Method for gathering and summarizing internet information |
CN103942335A (zh) * | 2014-05-07 | 2014-07-23 | 武汉大学 | 一种针对网页结构变化的不间断爬虫系统构建方法 |
CN104331512A (zh) * | 2014-11-25 | 2015-02-04 | 烽火通信科技股份有限公司 | 一种bbs页面自动采集方法 |
-
2015
- 2015-06-30 CN CN201510369634.9A patent/CN104933168B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060112125A1 (en) * | 2001-12-21 | 2006-05-25 | Potok Thomas E | Method for gathering and summarizing internet information |
CN103942335A (zh) * | 2014-05-07 | 2014-07-23 | 武汉大学 | 一种针对网页结构变化的不间断爬虫系统构建方法 |
CN104331512A (zh) * | 2014-11-25 | 2015-02-04 | 烽火通信科技股份有限公司 | 一种bbs页面自动采集方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874346A (zh) * | 2016-12-26 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 网页中的页面正文提取方法和装置 |
CN106874346B (zh) * | 2016-12-26 | 2020-10-30 | 微梦创科网络科技(中国)有限公司 | 网页中的页面正文提取方法和装置 |
CN107784056A (zh) * | 2017-02-20 | 2018-03-09 | 平安科技(深圳)有限公司 | 页面数据查找方法及装置 |
CN107784056B (zh) * | 2017-02-20 | 2020-03-06 | 平安科技(深圳)有限公司 | 页面数据查找方法及装置 |
CN107133310A (zh) * | 2017-04-28 | 2017-09-05 | 安徽博约信息科技股份有限公司 | 僵尸网站的检测方法 |
CN108153851A (zh) * | 2017-12-21 | 2018-06-12 | 北京工业大学 | 一种基于规则和语义的通用论坛主题帖页面信息抽取方法 |
CN108153851B (zh) * | 2017-12-21 | 2021-06-18 | 北京工业大学 | 一种基于规则和语义的通用论坛主题帖页面信息抽取方法 |
CN108268433A (zh) * | 2018-02-26 | 2018-07-10 | 杭州数梦工场科技有限公司 | 基于网页文章的标题抽取方法及装置 |
CN108268433B (zh) * | 2018-02-26 | 2019-06-11 | 杭州数梦工场科技有限公司 | 基于网页文章的标题抽取方法及装置 |
CN110717131A (zh) * | 2018-06-27 | 2020-01-21 | 北京国双科技有限公司 | 页面改版的监控方法及相关系统 |
CN109325201A (zh) * | 2018-08-15 | 2019-02-12 | 北京百度网讯科技有限公司 | 实体关系数据的生成方法、装置、设备及存储介质 |
US11321421B2 (en) | 2018-08-15 | 2022-05-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, apparatus and device for generating entity relationship data, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN104933168B (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933168A (zh) | 一种网页内容自动采集方法 | |
CN101471818B (zh) | 一种恶意注入脚本网页检测方法和系统 | |
US8321396B2 (en) | Automatically extracting by-line information | |
CN102567530B (zh) | 一种文章类型网页智能抽取系统及其方法 | |
US11003442B2 (en) | Application programming interface documentation annotation | |
CN102054028B (zh) | 一种网络爬虫系统实现页面渲染功能的方法 | |
CN101763423B (zh) | 实现万维网页面树形结构数据展示的方法、系统及装置 | |
CN103631802B (zh) | 歌曲信息检索方法、装置及相应的服务器 | |
CN102521232B (zh) | 一种互联网元数据的分布式采集处理系统及方法 | |
CN102609456A (zh) | 一种文章实时智能抓取系统和方法 | |
WO2013146736A1 (ja) | 同義関係判定装置、同義関係判定方法、及びそのプログラム | |
CN104182412A (zh) | 一种网页爬取方法及系统 | |
CN101441629A (zh) | 一种非结构化网页信息的自动采集方法 | |
CN103226599A (zh) | 一种精确提取网页内容的方法及系统 | |
CN102662969A (zh) | 一种基于网页结构语义的互联网信息对象定位方法 | |
CN107862039B (zh) | 网页数据获取方法、系统和数据匹配推送方法 | |
US11263062B2 (en) | API mashup exploration and recommendation | |
CN106844782B (zh) | 一种面向网络的多通道大数据采集系统及方法 | |
CN103853770A (zh) | 一种抽取论坛网页中帖子内容的方法及系统 | |
CN104331512B (zh) | 一种bbs页面自动采集方法 | |
CN101751443A (zh) | 数据检索与处理系统及方法 | |
CN105808561A (zh) | 一种从网页中提取摘要的方法和装置 | |
CN101261645B (zh) | 一种获取多层信息的方法和装置 | |
CN104156458A (zh) | 一种信息的提取方法及装置 | |
CN101576933A (zh) | 基于标题分隔符的全自动web页面分组法 |
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 |