CN113392354B - 一种网页正文解析方法、系统、介质及电子设备 - Google Patents

一种网页正文解析方法、系统、介质及电子设备 Download PDF

Info

Publication number
CN113392354B
CN113392354B CN202110719543.9A CN202110719543A CN113392354B CN 113392354 B CN113392354 B CN 113392354B CN 202110719543 A CN202110719543 A CN 202110719543A CN 113392354 B CN113392354 B CN 113392354B
Authority
CN
China
Prior art keywords
node
block
text
date
content
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.)
Active
Application number
CN202110719543.9A
Other languages
English (en)
Other versions
CN113392354A (zh
Inventor
辛国茂
王瑞霜
吴士伟
陈通
卢凤
杨春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Ecloud Information Technology Co ltd
Original Assignee
Shandong Ecloud Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Ecloud Information Technology Co ltd filed Critical Shandong Ecloud Information Technology Co ltd
Priority to CN202110719543.9A priority Critical patent/CN113392354B/zh
Publication of CN113392354A publication Critical patent/CN113392354A/zh
Priority to ZA2021/08738A priority patent/ZA202108738B/en
Application granted granted Critical
Publication of CN113392354B publication Critical patent/CN113392354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

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

本公开提供了一种网页正文解析方法、系统、介质及电子设备,获取网页HTML源代码;对网页HTML源代码进行预处理;根据预处理后的网页HTML源代码生成文档对象模型树;根据获取的文档对象模型树,定位发文日期所在的块并获取其节点;根据发文日期块节点获取正文块节点;根据正文块节点获取正文块XPath及正文块HTML;本公开解决了低密度网页正文提取的问题,提升了网页正文的提取准确率,提高了工作效率,节省了人力成本。

Description

一种网页正文解析方法、系统、介质及电子设备
技术领域
本公开涉及网页正文解析技术领域,特别涉及一种网页正文解析方法、系统、介质及电子设备。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
随着信息技术的飞速发展,互联网已经成为信息共享的巨大载体。随着网络上信息资源的不断增加,越来越多的公司从网络上获取数据资源来满足自己的需求。因此,网页正文的提取将变得越来越重要而且具有巨大的应用价值和发展前景。由于不同的网站上其HTML编写的样式及模板不同,这将导致很难从不规则的网页中使用模板对正文内容进行提取。
发明人发现,目前已有一些方法对网页正文进行提取,包括手动和自动提取方法。手动提取需要人根据网页源代码获取其xpath规则,然后再进行提取,这将耗费大量的人力,效率低。自动抽取技术一般都是基于文本密度的方法对网页正文进行提取。针对政策类网页正文的提取,我们已经使用基于文本密度的方法对网页正文进行了提取,但是,这种方法不适用于正文内容稀疏、正文只有图片、视频、表格等样式的低密度网页,从而导致部分网页正文内容提取失败。
发明内容
为了解决现有技术的不足,本公开提供了一种网页正文解析方法、系统、介质及电子设备,解决了低密度网页正文提取的问题,提升了网页正文的提取准确率,提高了工作效率,节省了人力成本。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种网页正文解析方法。
一种网页正文解析方法,包括以下过程:
获取网页HTML源代码;
对网页HTML源代码进行预处理;
根据预处理后的网页HTML源代码生成文档对象模型树;
根据获取的文档对象模型树,定位发文日期所在的块并获取其节点;
根据发文日期块节点获取正文块节点;
根据正文块节点获取正文块XPath及正文块HTML。
本公开第二方面提供了一种网页正文解析系统。
一种网页正文解析系统,包括:
数据获取模块,被配置为:获取网页HTML源代码;
数据预处理模块,被配置为:对网页HTML源代码进行预处理;
文档对象模型树生成模块,被配置为:根据预处理后的网页HTML源代码生成文档对象模型树;
发文日期块节点获取模块,被配置为:根据获取的文档对象模型树,定位发文日期所在的块并获取其节点;
正文块节点获取模块,被配置为:根据发文日期块节点获取正文块节点;
正文块信息获取模块,被配置为:根据正文块节点获取正文块XPath及正文块HTML。
本公开第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开第一方面所述的网页正文解析方法中的步骤。
本公开第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开第一方面所述的网页正文解析方法中的步骤。
与现有技术相比,本公开的有益效果是:
1、本公开所述的方法、系统、介质或电子设备,解决了低密度网页正文提取的问题,使得网页正文的提取准确率得到了提升,提高了工作效率,节省了公司的人力成本。
2、本公开所述的方法、系统、介质或电子设备,根据日期正则表达式获取所有日期所在的节点;根据日期节点的标签对发文日期节点进行初步筛选,形成候选发文日期节点列表;遍历候选发文日期节点列表并结合发文日期块的网页规则,获取候选发文日期块节点列表及其相对于发文日期节点的层级列表,根据发文日期所在的块的候选节点列表及其相对于发文日期节点的层级列表获取发文日期所在块的节点,实现了发文日期所在块的节点的准确获取。
3、本公开所述的方法、系统、介质或电子设备,通过预设的网页规则,实现了发文日期块节点列表及其相对于发文日期节点层级列表的准确获取。
本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例1提供的网页正文解析方法的流程示意图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例1:
如图1所示,本公开实施例1提供了一种网页正文解析方法,包括以下内容:
步骤1:根据url获取网页HTML源代码。
步骤2:对HTML网页源代码进行预处理,包括去除“script”、“<br>”干扰标签。
步骤3:根据预处理后的HTML网页源代码生成dom tree。
步骤4:定位发文日期所在的块并获取其节点记为date_block_node。
步骤4中还包括以下步骤:
步骤4.1:根据日期正则表达式获取所有日期所在的节点;
步骤4.2:根据日期节点的标签对发文日期节点进行初步筛选,形成候选发文日期节点列表记为node_date_list;
步骤4.3:遍历node_date_list并结合发文日期块的网页规则,获取候选发文日期块节点列表及其相对于发文日期节点的层级列表。
网页规则如下:
日期关键词规则记为reg_date:"时间|日期";
附加关键词规则记为reg_addition:"来源|稿源|浏览|阅读|访问量|访问次数|点击|字体|作者|[^(发文)]字号|专栏[::]";
干扰关键词规则记为reg_exclude:"索引号";
步骤4.3的具体实施过程如下:
遍历node_date_list中的日期节点记为node_date,获取node_date节点下的文本并记为node_text;
如果node_text符合reg_date规则,同时符合reg_addition规则,则将node_date添加到发文日期块节点列表中并将列表记为date_block_nodes,同时将层级值1添加到发文日期块的层级列表中记为date_block_nodes_layer;
否则,如果node_text符合reg_date规则并且node_date的父节点记为node_date_p不为空,同时node_date_p节点的文本内容node_p_text符合reg_addition规则并且node_p_text不符合reg_exclude规则并且node_date_p节点中的中文字符的长度小于100,则将node_date_p添加到date_block_nodes列表中,同时将层级值2添加到date_block_nodes_layer列表中;
否则,如果node_text符合reg_addition规则,则将node_date添加到date_block_nodes列表中,同时将层级值1添加到date_block_nodes_layer列表中;
否则,如果node_date_p不为空并且node_date_p节点的文本内容node_p_text符合reg_addition规则,同时,node_p_text不符合reg_exclude规则并且node_date_p节点中的中文字符的长度小于100,则将node_date_p添加到date_block_nodes列表中,同时将层级值2添加到date_block_nodes_layer列表中;
否则,如果node_date_p不为空并且node_date_p的父节点记为node_date_pp不为空,同时node_date_pp节点的文本内容node_pp_text符合reg_addition规则并且node_pp_text不符合reg_exclude规则并且node_date_pp节点中的中文字符的长度小于100,则将node_date_pp添加到date_block_nodes列表中,同时将层级值3添加到date_block_nodes_layer列表中;
否则,如果node_date_p不为空、node_date_pp不为空并且node_date_pp的父节点记为node_date_ppp不为空,同时node_date_ppp节点的文本内容node_ppp_text符合reg_addition规则并且node_ppp_text不符合reg_exclude规则并且node_date_ppp节点中的中文字符的长度小于100,则将node_date_ppp添加到date_block_nodes列表中,同时将层级值4添加到date_block_nodes_layer列表中。
步骤4.4:根据发文日期所在的块的候选节点列表及其相对于发文日期节点的层级列表获取发文日期所在块的节点。
步骤4.4的具体实施过程如下:
步骤4.4.1:对date_block_nodes列表根据date_block_nodes_layer层级列表按照层级由小到大的顺序进行排序;
步骤4.4.2:将date_block_nodes列表中节点标签为“div”的节点排列在前面,形成排序后的date_block_nodes列表;
步骤4.4.3:遍历date_block_nodes列表,如果在候选日期块节点的文本中匹配到一项日期规则1的值,则结束循环且该候选日期块节点为发文日期块节点;否则,如果在候选日期块节点的文本中匹配到一项日期规则2的值且该候选日期块节点的孩子节点中没有“p”节点,则将该候选日期块节点赋值为发文日期块节点;否则,如果在候选日期块节点的文本中匹配到一项日期规则2的值且候选日期块节点的文本符合reg_addition规则,同时,该节点的中文文本长度小于30,则将该候选日期块节点赋值为发文日期块节点。
说明:
日期规则1:
"(\d{4}\s*?-\s*?\d{1,2}\s*?-\s*?\d{1,2})|(\d{4}\s*?/\s*?\d{1,2}\s*?/\s*?\d{1,2})"
日期规则2:
"\d{4}\s*?年\s*?\d{1,2}\s*?月\s*?\d{1,2}\s*?日"
步骤5:根据发文日期块节点获取正文块节点、正文HTML字符串。
具体的,包括以下步骤:
步骤5.1:根据发文日期块节点date_block_node获取其之后的所有的兄弟节点记为nodes_follow_siblings;
步骤5.2:遍历nodes_follow_siblings,判断当前兄弟节点记为content_block_tmp是否为正文块节点(具体方法见步骤5.4);如果content_block_tmp是正文块节点,则将该节点赋值给正文块节点并结束循环,如果content_block_tmp不是正文块节点,则继续遍历,如果所有的兄弟节点均不是正文块的节点,则执行步骤5.3。
步骤5.3:获取date_block_node的父节点赋值为发文日期块节点date_block_node,如果循环次数小于5,则相继执行步骤5.1、步骤5.2,否则,程序结束。
步骤5.4:判断节点content_block_tmp是否为正文块节点,具体的实施过程如下:
步骤5.4.1:首先,判断content_block_tmp节点的标签是否在列表["script","a","style","h1","br"]中,如果在,则判断该节点不是正文块,如果不在,则继续执行步骤5.4.2;
步骤5.4.2:记content_block_tmp节点的HTML为content_block_html,content_block_tmp节点的文本内容为content_block_text,content_block_tmp节点的中文文本内容为content_block_text_chinese。
reg_date规则:"时间|日期";
reg_source规则:"来源\s*?[::]";
content_exclude规则:"索引号|文件名称|公开日期|成文日期|生效日期|废止日期";
reg_font规则:"字体|字号";
reg_font_size规则:"大|中|小";
reg_exclude规则:"视力保护色|保护视力色|网站标识码";
reg_exclude1规则:"fenxiang|share|fx|font[^(-size)]";
reg_further1规则:"微博|微信|QQ|打印|邮件";
reg_further2规则:"分享|关闭";
reg_further3规则:"扫一扫|上一篇|下一篇|上一条|下一条|Qzone";
reg_video规则:"video|swf";
如果content_block_text_chinese符合reg_font规则并且content_block_text_chinese符合reg_font_size且content_block_text_chinese的长度小于30,则content_block_tmp不是正文块;
否则,如果content_block_text符合reg_date规则并且content_block_text符合reg_source规则并且content_block_text_chinese的长度小于150,则content_block_tmp不是正文块;
否则,如果content_block_text符合reg_exclude规则,则content_block_tmp不是正文块;
否则,如果content_block_text_chinese含有“微博”并且content_block_text_chinese含有“微信”并且content_block_text_chinese的长度小于30,则content_block_tmp不是正文块;
否则,如果content_block_html符合reg_further1规则并且content_block_html符合reg_further2规则或者content_block_html符合reg_further3规则,说明content_block_tmp节点块中包含有脏数据,需进一步缩小正文块的范围,则执行步骤5.4.3;
否则,如果content_block_text_chinese符合content_exclude规则并且content_block_text_chinese的长度小于100,则content_block_tmp不是正文块;
否则,如果content_block_text_chinese的长度大于5或者content_block_tmp节点及其子节点中含有“p”节点,则执行步骤5.4.4;
否则,如果content_block_tmp的孩子节点中含有“img”节点,并且content_block_html不符合reg_exclude1规则或content_block_tmp的孩子节点中含有“p”节点,则执行步骤5.4.4;
否则,如果content_block_html符合reg_video规则,则执行步骤5.4.4。
步骤5.4.3:取content_block_tmp节点块的所有直接孩子节点记为content_block_tmp_childs,遍历content_block_tmp_childs,执行步骤5.4判断节点是否为正文块节点,如果是则赋值给正文块节点并结束循环,如果不是,则返回None。
步骤5.4.4:判断content_block_tmp正文节点是否由多个节点块组成。如果是,则返回content_block_tmp正文节点及多个正文节点块的HTML;如果不是,则返回content_block_tmp。
步骤6:根据正文块节点获取正文块xpath及正文块HTML。如果步骤5中返回正文块HTML,则将其赋值为正文块HTML,如果未返回,则根据正文块节点获取正文块HTML。
实施例2:
本公开实施例2提供了一种网页正文解析系统,包括:
数据获取模块,被配置为:获取网页HTML源代码;
数据预处理模块,被配置为:对网页HTML源代码进行预处理;
文档对象模型树生成模块,被配置为:根据预处理后的网页HTML源代码生成文档对象模型树;
发文日期块节点获取模块,被配置为:根据获取的文档对象模型树,定位发文日期所在的块并获取其节点;
正文块节点获取模块,被配置为:根据发文日期块节点获取正文块节点;
正文块信息获取模块,被配置为:根据正文块节点获取正文块XPath及正文块HTML。
实施例3:
本公开实施例3提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开实施例1所述的网页正文解析方法中的步骤。
实施例4:
本公开实施例4提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例1所述的网页正文解析方法中的步骤。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (9)

1.一种网页正文解析方法,其特征在于:包括以下过程:
获取网页HTML源代码;
对网页HTML源代码进行预处理;
根据预处理后的网页HTML源代码生成文档对象模型树;
根据获取的文档对象模型树,定位发文日期所在的块并获取其节点;
根据发文日期块节点获取正文块节点;
根据发文日期块节点获取其之后的所有的兄弟节点记为nodes_follow_siblings;
遍历nodes_follow_siblings,判断当前兄弟节点记为content_block_tmp是否为正文块节点;如果content_block_tmp是正文块节点,则将该节点赋值给正文块节点并结束循环,如果content_block_tmp不是正文块节点,则继续遍历,如果所有的兄弟节点均不是正文块的节点,则执行下一步;
根据正文块节点获取正文块XPath及正文块HTML。
2.如权利要求1所述的网页正文解析方法,其特征在于:
定位发文日期所在的块并获取其节点,包括以下过程:
根据日期正则表达式获取所有日期所在的节点;
根据日期节点的标签对发文日期节点进行初步筛选,形成候选发文日期节点列表;
遍历候选发文日期节点列表并结合发文日期块的网页规则,获取候选发文日期块节点列表及其相对于发文日期节点的层级列表;
根据发文日期所在的块的候选节点列表及其相对于发文日期节点的层级列表获取发文日期所在块的节点。
3.如权利要求2所述的网页正文解析方法,其特征在于:
网页规则,包括:
日期关键词规则记为reg_date:"时间|日期";
附加关键词规则记为reg_addition:"来源|稿源|浏览|阅读|访问量|访问次数|点击|字体|作者|[^(发文)]字号|专栏[::]";
干扰关键词规则记为reg_exclude:"索引号"。
4.如权利要求3所述的网页正文解析方法,其特征在于:
遍历候选发文日期节点列表并结合发文日期块的网页规则,获取候选发文日期块节点列表及其相对于发文日期节点的层级列表,包括以下过程:
遍历候选发文日期节点列表中的日期节点记为node_date,获取node_date节点下的文本并记为node_text;
如果node_text符合reg_date规则,同时符合reg_addition规则,则将node_date添加到发文日期块节点列表中并将列表记为date_block_nodes,同时将层级值1添加到发文日期块的层级列表中记为date_block_nodes_layer。
5.如权利要求4所述的网页正文解析方法,其特征在于:
否则,如果node_text符合reg_date规则并且node_date的父节点记为node_date_p不为空,同时node_date_p节点的文本内容node_p_text符合reg_addition规则并且node_p_text不符合reg_exclude规则并且node_date_p节点中的中文字符的长度小于第一预设值,则将node_date_p添加到date_block_nodes列表中,同时将层级值2添加到date_block_nodes_layer列表中;
或者,
否则,如果node_text符合reg_addition规则,则将node_date添加到date_block_nodes列表中,同时将层级值1添加到date_block_nodes_layer列表中;
或者,
否则,如果node_date_p不为空并且node_date_p节点的文本内容node_p_text符合reg_addition规则,同时,node_p_text不符合reg_exclude规则并且node_date_p节点中的中文字符的长度小于第一预设值,则将node_date_p添加到date_block_nodes列表中,同时将层级值2添加到date_block_nodes_layer列表中;
或者,
否则,如果node_date_p不为空并且node_date_p的父节点记为node_date_pp不为空,同时node_date_pp节点的文本内容node_pp_text符合reg_addition规则并且node_pp_text不符合reg_exclude规则并且node_date_pp节点中的中文字符的长度小于第一预设值,则将node_date_pp添加到date_block_nodes列表中,同时将层级值3添加到date_block_nodes_layer列表中;
或者,
否则,如果node_date_p不为空、node_date_pp不为空并且node_date_pp的父节点记为node_date_ppp不为空,同时node_date_ppp节点的文本内容node_ppp_text符合reg_addition规则并且node_ppp_text不符合reg_exclude规则并且node_date_ppp节点中的中文字符的长度小于第一预设值,则将node_date_ppp添加到date_block_nodes列表中,同时将层级值4添加到date_block_nodes_layer列表中;
或者,
根据发文日期所在的块的候选节点列表及其相对于发文日期节点的层级列表获取发文日期所在块的节点,包括以下过程:
对date_block_nodes列表根据date_block_nodes_layer层级列表按照层级由小到大的顺序进行排序;
将date_block_nodes列表中节点标签为div的节点排列在前面,形成排序后的date_block_nodes列表;
遍历date_block_nodes列表,如果在候选日期块节点的文本中匹配到一项第一日期规则的值,则结束循环且该候选日期块节点为发文日期块节点;否则,如果在候选日期块节点的文本中匹配到一项第二日期规则的值且该候选日期块节点的孩子节点中没有p节点,则将该候选日期块节点赋值为发文日期块节点;否则,如果在候选日期块节点的文本中匹配到一项第二日期规则的值且候选日期块节点的文本符合reg_addition规则,同时,该节点的中文文本长度小于第二预设值,则将该候选日期块节点赋值为发文日期块节点。
6.如权利要求1所述的网页正文解析方法,其特征在于:
判断节点content_block_tmp是否为正文块节点,包括以下过程:
步骤1:判断content_block_tmp节点的标签是否在列表["script","a","style","h1","br"]中,如果在,则判断该节点不是正文块,如果不在,则继续下一步;
步骤2:记content_block_tmp节点的HTML为content_block_html,content_block_tmp节点的文本内容为content_block_text,content_block_tmp节点的中文文本内容为content_block_text_chinese;
如果content_block_text_chinese符合reg_font规则并且content_block_text_chinese符合reg_font_size且content_block_text_chinese的长度小于第二预设值,则content_block_tmp不是正文块;
否则,如果content_block_text符合reg_date规则并且content_block_text符合reg_source规则并且content_block_text_chinese的长度小于第四预设值,则content_block_tmp不是正文块;
否则,如果content_block_text符合reg_exclude规则,则content_block_tmp不是正文块;
否则,如果content_block_text_chinese含有第一商业名称并且content_block_text_chinese含有第二商业名称并且content_block_text_chinese的长度小于第二预设值,则content_block_tmp不是正文块;
否则,如果content_block_html符合reg_further1规则并且content_block_html符合reg_further2规则或者content_block_html符合reg_further3规则,则执行步骤3;
否则,如果content_block_text_chinese符合content_exclude规则并且content_block_text_chinese的长度小于第一预设值,则content_block_tmp不是正文块;
否则,如果content_block_text_chinese的长度大于第三预设值或者content_block_tmp节点及其子节点中含有p节点,则执行步骤4;
否则,如果content_block_tmp的孩子节点中含有img节点,并且content_block_html不符合reg_exclude1规则或content_block_tmp的孩子节点中含有p节点,则执行步骤,4;
否则,如果content_block_html符合reg_video规则,则执行步骤4;
步骤3:取content_block_tmp节点块的所有直接孩子节点记为content_block_tmp_childs,遍历content_block_tmp_childs,判断节点是否为正文块节点,如果是则赋值给正文块节点并结束循环,如果不是,则返回None;
步骤4:判断content_block_tmp正文节点是否由多个节点块组成,如果是,则返回content_block_tmp正文节点及多个正文节点块的HTML;如果不是,则返回content_block_tmp。
7.一种网页正文解析系统,其特征在于:包括:
数据获取模块,被配置为:获取网页HTML源代码;
数据预处理模块,被配置为:对网页HTML源代码进行预处理;
文档对象模型树生成模块,被配置为:根据预处理后的网页HTML源代码生成文档对象模型树;
发文日期块节点获取模块,被配置为:根据获取的文档对象模型树,定位发文日期所在的块并获取其节点;
正文块节点获取模块,被配置为:根据发文日期块节点获取正文块节点;
根据发文日期块节点获取其之后的所有的兄弟节点记为nodes_follow_siblings;
遍历nodes_follow_siblings,判断当前兄弟节点记为content_block_tmp是否为正文块节点;如果content_block_tmp是正文块节点,则将该节点赋值给正文块节点并结束循环,如果content_block_tmp不是正文块节点,则继续遍历,如果所有的兄弟节点均不是正文块的节点,则执行下一步;
正文块信息获取模块,被配置为:根据正文块节点获取正文块XPath及正文块HTML。
8.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的网页正文解析方法中的步骤。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述的网页正文解析方法中的步骤。
CN202110719543.9A 2021-06-28 2021-06-28 一种网页正文解析方法、系统、介质及电子设备 Active CN113392354B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110719543.9A CN113392354B (zh) 2021-06-28 2021-06-28 一种网页正文解析方法、系统、介质及电子设备
ZA2021/08738A ZA202108738B (en) 2021-06-28 2021-11-08 Method, system, medium and electronic equipment for webpage main text analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110719543.9A CN113392354B (zh) 2021-06-28 2021-06-28 一种网页正文解析方法、系统、介质及电子设备

Publications (2)

Publication Number Publication Date
CN113392354A CN113392354A (zh) 2021-09-14
CN113392354B true CN113392354B (zh) 2022-09-13

Family

ID=77624199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110719543.9A Active CN113392354B (zh) 2021-06-28 2021-06-28 一种网页正文解析方法、系统、介质及电子设备

Country Status (2)

Country Link
CN (1) CN113392354B (zh)
ZA (1) ZA202108738B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115203604A (zh) * 2022-09-15 2022-10-18 成都数之联科技股份有限公司 一种网页正文提取方法及系统及装置及介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268148B (zh) * 2014-08-27 2018-02-06 中国科学院计算技术研究所 一种基于时间串的论坛页面信息自动抽取方法及系统
CN108520007B (zh) * 2018-03-15 2021-09-28 江河瑞通(北京)技术有限公司 万维网网页信息提取方法、存储介质及计算机设备
CN108920434B (zh) * 2018-06-06 2022-08-30 武汉酷犬数据科技有限公司 一种通用的网页主题内容提取方法和系统
CN111966930B (zh) * 2020-08-17 2021-05-04 山东亿云信息技术有限公司 基于XPath序列的网页列表解析方法及系统
CN112395860A (zh) * 2020-11-27 2021-02-23 山东省计算中心(国家超级计算济南中心) 一种大规模并行政策数据知识抽取方法及系统
CN112230989B (zh) * 2020-12-14 2021-03-12 北京智慧星光信息技术有限公司 网页频道导航栏提取方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN113392354A (zh) 2021-09-14
ZA202108738B (en) 2022-01-26

Similar Documents

Publication Publication Date Title
CN107145482B (zh) 基于人工智能的文章生成方法及装置、设备与可读介质
CN107423391B (zh) 网页结构化数据的信息提取方法
CN101727461A (zh) 一种网页的正文抽取方法
CN109492177B (zh) 一种基于网页语义结构的网页分块方法
CN106503211B (zh) 面向信息发布类网站的移动版自动生成的方法
CN105740355B (zh) 基于聚集文本密度的网页正文提取方法及装置
Cardoso et al. An efficient language-independent method to extract content from news webpages
CN108733813A (zh) 面向bbs论坛网页内容的信息提取方法、系统及介质
Uzun et al. An effective and efficient Web content extractor for optimizing the crawling process
CN108921184A (zh) 一种通用的网页类型判定方法
CN114238575A (zh) 文档解析方法、系统、计算机设备及计算机可读存储介质
US20140156799A1 (en) Method and System for Extracting Post Contents From Forum Web Page
CN107145591B (zh) 一种基于标题的网页有效元数据内容提取方法
CN107436931B (zh) 网页正文抽取方法及装置
CN113392354B (zh) 一种网页正文解析方法、系统、介质及电子设备
CN112818200A (zh) 基于静态网站的数据爬取及事件分析方法及系统
CN116245177A (zh) 地理环境知识图谱自动化构建方法及系统、可读存储介质
CN106372232B (zh) 基于人工智能的信息挖掘方法和装置
CN104572874B (zh) 一种网页信息的抽取方法及装置
CN108694192B (zh) 网页类型的判断方法及装置
CN106897287B (zh) 网页发布时间抽取方法和用于网页发布时间抽取的装置
CN117312711A (zh) 一种基于ai分析的搜索引擎优化方法及系统
CN110083760B (zh) 一种基于可视块的多记录型动态网页信息提取方法
CN101996190A (zh) 一种从网页中抽取信息的方法及装置
CN111966930B (zh) 基于XPath序列的网页列表解析方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Xin Guomao

Inventor after: Wang Ruishuang

Inventor after: Wu Shiwei

Inventor after: Chen Tong

Inventor after: Lu Feng

Inventor after: Yang Chun

Inventor before: Xin Guomao

Inventor before: Wang Ruishuang

Inventor before: Wu Shiwei

Inventor before: Chen Tong

Inventor before: Lu Feng

Inventor before: Yang Chun

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Floor 12, Building 3, Shuntai Plaza, No. 2000 Shunhua Road, High tech Industrial Development Zone, Jinan City, Shandong Province, 250101

Patentee after: SHANDONG ECLOUD INFORMATION TECHNOLOGY CO.,LTD.

Country or region after: China

Address before: 250014 3rd floor, block B, Yinhe building, 2008 Xinluo street, high tech Zone, Jinan City, Shandong Province

Patentee before: SHANDONG ECLOUD INFORMATION TECHNOLOGY CO.,LTD.

Country or region before: China