CN112230989B - 网页频道导航栏提取方法、系统、电子设备及存储介质 - Google Patents
网页频道导航栏提取方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112230989B CN112230989B CN202011461252.6A CN202011461252A CN112230989B CN 112230989 B CN112230989 B CN 112230989B CN 202011461252 A CN202011461252 A CN 202011461252A CN 112230989 B CN112230989 B CN 112230989B
- Authority
- CN
- China
- Prior art keywords
- channel
- webpage
- source code
- url
- text
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- 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/954—Navigation, e.g. using categorised browsing
-
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种网页频道导航栏提取方法、系统、电子设备及存储介质,方法包括:获取网页源码;对网页源码进行编码格式处理和非正文标签去除处理;通过频道标志符号、频道关键词和发文时间进行网页频道导航栏的位置定位,得到定位后的源码;判断定位后的源码是否包含a标签;若包含a标签,则通过a标签得到频道分割数组;若不包含a标签,则通过频道标志符号得到频道分割数组;对频道分割数组按照正序排列进行分级,依次获取频道文本和频道URL;判断频道URL是否正常;若不正常,则将URL赋值为空;若正常,则将URL赋值为频道URL;根据频道文本和URL赋值得到网页频道导航栏的频道信息。该方法实现频道自动识别与提取,无需针对不同网站编写不同解析规则。
Description
技术领域
本发明涉及计算机技术领域,具体涉及到一种网页频道导航栏提取方法、系统、电子设备及存储介质。
背景技术
随着网络的迅速发展,我们对数据的要求也越来越精确,也更要求数据的扩展性,对于网络文章以及对于各个新闻媒体的频道进行提取,在各个行业也有着至关重要的作用。但是现在各大媒体以及新闻网站众多,网站的模板样式也是层出不穷,针对不同网站编写不同解析规则已经无法应对越来越多的网站。
发明内容
有鉴于此,本发明实施例提供了一种网页频道导航栏提取方法、系统、电子设备及存储介质,以提供一种新的网页频道导航栏提取方法,无需针对不同网站编写不同解析规则。
为此,本发明实施例提供了如下技术方案:
根据第一方面,本发明实施例提供了一种网页频道导航栏提取方法,包括:获取待识别网页的网页源码,所述网页源码包含网页频道导航栏,所述网页频道导航栏包括至少一个频道;对所述网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码;通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码;判断所述定位后的源码是否包含a标签;若定位后的源码包含a标签,则通过a标签对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;对所述频道分割数组按照正序排列进行分级,依次获取所述频道分割数组中每一个频道所对应的频道文本和频道URL;判断频道URL是否存在;若频道URL不存在,则将频道URL赋值为空;若URL存在,则判断所述频道URL是否正常;若所述频道URL不正常,则将URL赋值为空;若所述频道URL正常,则将URL赋值为所述频道URL;根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息。
可选地,获取待识别网页的网页源码的步骤中,包括:对待识别网页的URL进行URL下载,得到URL下载结果;判断所述URL下载结果是否为空;若所述URL下载结果为空,则返回URL异常;若所述URL下载结果不为空,则判断网页请求状态码是否等于预设状态码;若网页请求状态码不等于预设状态码,则返回URL异常;若网页请求状态码等于预设状态码,则待识别网页的网页源码下载成功。
可选地,对所述网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码的步骤中,包括:通过chardet库对所述网页源码进行编码类型匹配,得到编码类型匹配结果;若编码类型匹配结果为匹配成功,则将所述网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;若编码类型匹配结果为匹配失败,则从网页源码中识别编码类型;若从网页源码中能够识别出编码类型,则将网页源码按照识别出的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;若从网页源码中不能够识别出编码类型,则将网页源码按照预设编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;对转换后的网页源码进行非正文标签去除处理,得到网页正文源码。
可选地,通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码的步骤中,包括:判断网页正文源码中是否包含频道标志符号;若网页正文源码中包含频道标志符号,则根据所述频道标志符号进行网页频道导航栏的位置定位,得到定位后的源码;若网页正文源码中不包含频道标志符号,则判断网页正文源码中是否包含频道关键词;若网页正文源码中包含频道关键词,则根据所述频道关键词进行网页频道导航栏的位置定位,得到定位后的源码;若网页正文源码中不包含频道关键词,则判断网页正文源码中是否包含发文时间;若网页正文源码中包含发文时间,则根据所述发文时间进行网页频道导航栏的位置定位,得到定位后的源码;若网页正文源码中不包含发文时间,则网页频道导航栏的位置定位异常。
可选地,若网页正文源码中包含发文时间,则根据所述发文时间进行网页频道导航栏的位置定位,得到定位后的源码的步骤中,包括:若网页正文源码中包含发文时间,则遍历网页正文源码中的所有html标签,查找超链接和文本,所述超链接和文本所在位置即为网页频道导航栏的所在位置,得到定位后的源码。
可选地,判断所述频道URL是否正常的步骤中,包括:判断所述频道URL中是否包含待识别网页的网站域名。
可选地,根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息的步骤之后,还包括:将所述频道信息与城市地区库中的城市进行匹配,得到匹配结果;若所述匹配结果为匹配失败,则将频道信息进行存储;若所述匹配结果为匹配成功,则按照省市区对频道信息进行分级,得到频道信息对应的城市信息,将频道信息和城市信息进行存储。
根据第二方面,本发明实施例提供了一种网页频道导航栏提取系统,包括:获取模块,用于获取待识别网页的网页源码,所述网页源码包含网页频道导航栏,所述网页频道导航栏包括至少一个频道;第一处理模块,用于对所述网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码;第二处理模块,用于通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码;第一判断模块,用于判断所述定位后的源码是否包含a标签;第三处理模块,用于若定位后的源码包含a标签,则通过a标签对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;第四处理模块,用于若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;第五处理模块,用于对所述频道分割数组按照正序排列进行分级,依次获取所述频道分割数组中每一个频道所对应的频道文本和频道URL;第二判断模块,用于判断频道URL是否存在;第六处理模块,用于若频道URL不存在,则将URL赋值为空;第三判断模块,用于若频道URL存在,则判断所述频道URL是否正常;第七处理模块,用于若所述频道URL不正常,则将URL赋值为空;第八处理模块,用于若所述频道URL正常,则将URL赋值为所述频道URL;第九处理模块,用于根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息。
可选地,所述获取模块包括:第一处理单元,用于对待识别网页的URL进行URL下载,得到URL下载结果;第一判断单元,用于判断所述URL下载结果是否为空;第二处理单元,用于若所述URL下载结果为空,则返回URL异常;第三处理单元,用于若所述URL下载结果不为空,则判断网页请求状态码是否等于预设状态码;第四处理单元,用于若网页请求状态码不等于预设状态码,则返回URL异常;第五处理单元,用于若网页请求状态码等于预设状态码,则待识别网页的网页源码下载成功。
可选地,所述第一处理模块包括:第六处理单元,用于通过chardet库对所述网页源码进行编码类型匹配,得到编码类型匹配结果;第七处理单元,用于若编码类型匹配结果为匹配成功,则将所述网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;第八处理单元,用于若编码类型匹配结果为匹配失败,则从网页源码中识别编码类型;第九处理单元,用于若从网页源码中能够识别出编码类型,则将网页源码按照识别出的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;第十处理单元,用于若从网页源码中不能够识别出编码类型,则将网页源码按照预设编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;第十一处理单元,用于对转换后的网页源码进行非正文标签去除处理,得到网页正文源码。
可选地,所述第二处理模块包括:第二判断单元,用于判断网页正文源码中是否包含频道标志符号;第十二处理单元,用于若网页正文源码中包含频道标志符号,则根据所述频道标志符号进行网页频道导航栏的位置定位,得到定位后的源码;第三判断单元,用于若网页正文源码中不包含频道标志符号,则判断网页正文源码中是否包含频道关键词;第十三处理单元,用于若网页正文源码中包含频道关键词,则根据所述频道关键词进行网页频道导航栏的位置定位,得到定位后的源码;第四判断单元,用于若网页正文源码中不包含频道关键词,则判断网页正文源码中是否包含发文时间;第十四处理单元,用于若网页正文源码中包含发文时间,则根据所述发文时间进行网页频道导航栏的位置定位,得到定位后的源码;第十五处理单元,用于若网页正文源码中不包含发文时间,则网页频道导航栏的位置定位异常。
可选地,所述第十四处理单元包括:处理子单元,用于若网页正文源码中包含发文时间,则遍历网页正文源码中的所有html标签,查找超链接和文本,所述超链接和文本所在位置即为网页频道导航栏的所在位置,得到定位后的源码。
可选地,所述第二判断模块包括:第五判断子单元,用于判断所述频道URL中是否包含待识别网页的网站域名。
可选地,还包括:第十处理模块,用于将所述频道信息与城市地区库中的城市进行匹配,得到匹配结果;第十一处理模块,用于若所述匹配结果为匹配失败,则将频道信息进行存储;第十二处理模块,用于若所述匹配结果为匹配成功,则按照省市区对频道信息进行分级,得到频道信息对应的城市信息,将频道信息和城市信息进行存储。
根据第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行上述第一方面任意一项描述的网页频道导航栏提取方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行上述第一方面任意一项描述的网页频道导航栏提取方法。
本发明实施例技术方案,具有如下优点:
本发明实施例提供了一种网页频道导航栏提取方法、系统、电子设备及存储介质,其中,该方法包括:获取待识别网页的网页源码,所述网页源码包含网页频道导航栏,所述网页频道导航栏包括至少一个频道;对所述网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码;通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码;判断所述定位后的源码是否包含a标签;若定位后的源码包含a标签,则通过a标签对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;对所述频道分割数组按照正序排列进行分级,依次获取所述频道分割数组中每一个频道所对应的频道文本和频道URL;判断频道URL是否存在;若频道URL不存在,则将URL赋值为空;若频道URL存在,则判断所述频道URL是否正常;若所述频道URL不正常,则将URL赋值为空;若所述频道URL正常,则将URL赋值为所述频道URL;根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息。该方法先对待识别网页进行网页源码下载,对网页源码进行编码格式处理和多余数据的处理;之后,通过频道标志符号、频道关键词和发文时间进行频道位置的定位;然后,通过a标签和频道标志符号进行频道信息的提取,最终得到对网页频道导航栏的频道信息;实现了频道的自动识别与提取,无需针对不同网站编写不同解析规则。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的网页频道导航栏提取方法的一个具体示例的流程图;
图2为本发明实施例的网页频道导航栏提取方法的另一个具体示例的流程图;
图3为本发明实施例的网页频道导航栏提取方法的另一个具体示例的流程图;
图4为本发明实施例的网页频道导航栏提取方法的另一个具体示例的流程图;
图5为本发明实施例的网页频道导航栏提取方法的另一个具体示例的流程图;
图6为本发明实施例的网页频道导航栏提取系统的一个具体示例的框图;
图7为本发明实施例的电子设备的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种网页频道导航栏提取方法,如图1所示,该方法可以包括步骤S1-S13。
步骤S1:获取待识别网页的网页源码,网页源码包含网页频道导航栏,网页频道导航栏包括至少一个频道。
作为示例性的实施例,对待识别网页进行源码下载请求,服务器接收并处理上述请求后,便可下载得到待识别网页的网页源码。网页源码中包含网页频道导航栏,网页频道导航栏中包括至少一个频道。例如,新浪辽宁新闻的网页中,网页频道导航栏为新浪辽宁>新闻频道>本地新闻>正文,该导航栏包括四个频道,分别为新浪辽宁、新闻频道、本地新闻和正文。
步骤S2:对网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码。
作为示例性的实施例,利用chardet库对编码格式进行判断和处理,如果未获取到编码或获取到的编码格式为ISO-8859-2这种非正常编码,则通过网页源码获取具体编码或转换为utf-8,防止因编码问题导致获取到的数据不正确;接下来过滤掉一些非正文标签(如script、style等),留下正文标签,正文标签为包含在<body></body>内部的标签,如div、span、ul、li等标签,将非正文标签进行滤除,避免非正文标签对频道定位造成干扰,提高频道定位的准确性。
步骤S3:通过匹配频道标志符号、频道关键词和发文时间对网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码。
作为示例性的实施例,不同网页中频道间分隔符号不同,频道标志符号是通过对大量网页中频道之间的分隔符号进行统计分析得到的,是对频道进行分隔的符号,具体可包括“/”、“>”、“-”、“→”等,本实施例对此仅作示意性说明,不以此为限。不同网页中频道的常用词也不同,频道关键词也是基于对大量网页中频道常用词进行统计分析得到的,具体可包括“正文”、“首页”、“位置”等频道常用词。发文时间是网页中文章的发布时间。
把源码的数据优先通过一些频道常见的特殊符号(例:|>-→空格等)来进行定位,如果未获取到具体的频道数据,再通过“正文”、“首页”、“位置”等频道常用的关键词进行定位,如果通过关键词还无法定位到想要的数据,再通过正则等方式匹配文章的发文日期进行频道定位。
步骤S4:判断定位后的源码是否包含a标签。若定位后的源码包含a标签,则执行步骤S5;若定位后的源码不包含a标签,则执行步骤S6。
作为示例性的实施例,<a> 标签定义超链接,用于从一个页面链接到另一个页面,频道导航栏中包含的每一个频道均对应一个超链接,故通过a标签能快速识别出频道导航栏中的频道信息。
步骤S5:若定位后的源码包含a标签,则通过a标签对定位后的源码进行分割,得到网页频道导航栏的频道分割数组。
作为示例性的实施例,定位后的源码包含a标签,通过a标签对定位后的源码进行分割,分割成各个频道,得到网页频道导航栏的频道分割数组。
例如,网页频道导航栏为和讯网>新闻,则定位后的源码中包含以下两个a标签。
<a href="http://www.hexun.com/" class="l1">和讯首页</a>
<a href="http://news.hexun.com/" class="l1">新闻</a>
步骤S6:若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,得到网页频道导航栏的频道分割数组。
作为示例性的实施例,若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,查找标签是否在href属性,存在则获取href里的链接,若判断链接为当前域名的链接则保留并存储,和文本信息组成频道导航栏数据。
步骤S7:对频道分割数组按照正序排列进行分级,依次获取频道分割数组中每一个频道所对应的频道文本和频道URL。
作为示例性的实施例,频道分割数组是频道导航栏中各个频道的集合,对频道分割数组按照正序进行分级,也就是按照频道导航栏中的频道的先后顺序进行排列,依次获取每一个频道所对应的频道文本和频道URL。例如网页频道导航栏为和讯网>新闻,其包含两个频道,分别为和讯网和新闻,先对和讯网进行频道文本和频道URL的获取,之后,再对新闻进行频道文本和频道URL的获取。
步骤S8:判断频道URL是否存在。若频道URL不存在,则执行步骤S9;若频道URL存在,则执行步骤S10。
步骤S9:若频道URL不存在,则将URL赋值为空。
作为示例性的实施例,频道URL不存在,则通过源码无法得到频道URL,也就是源码中不包含频道URL的相关信息,将URL赋值为空(NONE)。
步骤S10:若频道URL存在,则判断频道URL是否正常。若频道URL不正常,则执行步骤S11;若频道URL正常,则执行步骤S12。由于一些网站的URL是隐藏的,故通过源码能够得到频道URL,也就是源码中包含频道URL的相关信息,但是URL的文本内容可能不正常,故需要判断频道URL是否正常。
具体地,判断频道URL是否正常的步骤中,包括判断频道URL中是否包含待识别网页的网站域名。
作为示例性的实施例,域名包含于URL中,同一个网站中的每一个网址都是在同一域名下的,故通过频道URL中是否包含待识别网页的网站域名,即可判断URL是否正常。例如,环球网的域名为huanqiu.com,则环球网中网页链接中均含有上述域名信息;又例如,新浪网的域名为sina.com.cn,则新浪网中网页链接中均含有上述域名。当然,在其它实施例中,可以通过URL关键字来判断URL是否正常,具体可根据实际需求合理设置。
步骤S11:若频道URL不正常,则将URL赋值为空。
作为示例性的实施例,若频道URL不正常,则说明无法获取到该频道的超链接URL,故将URL赋值为空。例如,某网页中某频道,该频道的频道URL不正常,部分代码具体如下所示。
<a href="/">首页</a><span></span>
又例如网址链接http://kan.china.com/qd/dbbox/caijing/的网页,其源码中的频道URL有正常URL(如href="http://www.tiyuxiu.com/"),也有非正常的URL(如href="/"),部分代码如下。
<body class="new1120">
<a target="_blank" data-tracker="no" style="display:none;" href="#"id="open-a-box"></a>
<div id="site-top-nav" class="site-top-nav">
<div class="container">
<ul class="left">
<li><a href="/">首页</a><span></span></li>
<li><a href="/">新闻</a><span></span></li>
<li><ahref="http://v.6789.com/"data-tracker="no"影视</a><span></span></li>
<li class="last"><a href="http://www.tiyuxiu.com/" data-tracker="no">体育</a></li>
上述代码中频道“首页”和“新闻”所对应的频道URL是非正常URL。
a标签的属性是 href 属性,它指定链接的目标,故href即对应频道的URL,有上面代码可知,该频道的频道URL为“/”,故频道URL不正常。
步骤S12:若频道URL正常,则将URL赋值为频道URL。
作为示例性的实施例,若频道URL正常,则能够得到该频道所对应的超链接,将URL赋值为频道URL。具体地,频道URL正常,则URL赋值为超链接中的文本内容。
例如,URL=”http://XXX”或者URL=”https://XXX”等。
步骤S13:根据频道文本和URL赋值得到网页频道导航栏的频道信息。
作为示例性的实施例,将频道导航栏中的每一个频道所对应的频道文本和URL赋值得到网页频道导航栏的频道信息。
例如,网页频道导航栏为新浪辽宁.新闻,通过上述步骤得到频道信息,并将频道信息存储至json文件中。
{ "name":"新浪辽宁",
"URL":"http://ln.sina.com.cn/" ;
"name":"新闻",
"URL":" http://ln.sina.com.cn/news/ " ;
}
优先判断当前数据是否存在a标签(网页超链接),不存在a标签的进行以特殊符号(例:|>-→)或空格进行分割成数组,存在则通过a标签分割;按当前数组的正序排序进行分级,依次获取正文内容、频道URL,若URL存在则判断URL是否为正常URL,正常URL进行赋值;最后返回数据结果。
对定位后的源码按照a标签分割并查找对应的频道链接和文本,得到频道导航栏的频道信息;不存在a标签则用频道通用标志符号替代。具体地,通过源码中a标签的分割源码,提取a标签中的频道链接和文本,判断链接为当前域名的链接则保留并存储,将当前域名的链接和文本信息组成频道导航栏数据。通过特殊符号以及空格分割源码,查找标签是否在href属性,存在则获取href里的链接,若判断链接为当前域名的链接则保留并存储,将当前域名的链接和文本信息组成频道导航栏数据。
上述步骤,先对待识别网页进行网页源码下载,对网页源码进行编码格式处理和多余数据的处理;之后,通过匹配频道标志符号、频道关键词和发文时间进行频道位置的定位;然后,通过a标签和频道标志符号进行频道信息的提取,最终得到对网页频道导航栏的频道信息;实现了频道的自动识别与提取,无需针对不同网站编写不同解析规则。
作为示例性的实施例,步骤S1获取待识别网页的网页源码的步骤中,如图2所示,包括步骤S101-S106。
步骤S101:对待识别网页的URL进行URL下载,得到URL下载结果。
作为示例性的实施例,对待识别网页进行URL下载,得到下载结果。
步骤S102:判断URL下载结果是否为空。若URL下载结果为空,则执行步骤S103;若URL下载结果不为空,则执行步骤S104。
作为示例性的实施例,URL下载结果值为空,则说明待识别网页的URL的下载地址异常,即找不到下载地址,故下载失败;若URL下载结果值不为空,则说明待识别网页的URL的下载地址存在。
步骤S103:若URL下载结果为空,则返回URL异常。
作为示例性的实施例,URL下载结果为空,则待识别网页的URL异常,返回URL异常,也就是下载失败的链接返回异常。判断下载是否成功便可以认为是在检测URL,如果下载失败,则是提供的URL无法正常打开进行浏览,这时程序会退出,以便后续检验所提供的URL是否为正常URL。
步骤S104:若URL下载结果不为空,则判断网页请求状态码是否等于预设状态码。若网页请求状态码不等于预设状态码,则执行步骤S105;若网页请求状态码等于预设状态码,则执行步骤S106。
URL下载结果不为空,则待识别网页的URL正常,则需要进一步判断网页请求状态码是否等于预设状态码。预设状态码为200,表示服务器成功处理了请求。
作为示例性的实施例,URL下载结果不为空,则说明有URL的下载地址,故向服务器发送下载请求,服务器接收到请求后会返回URL请求响应状态码。
步骤S105:若网页请求状态码不等于预设状态码,则返回URL异常。
作为示例性的实施例,网页请求状态码不等于预设状态码,说明服务器没有成功处理下载请求,URL异常,返回异常。
具体地,可以显示对应的下载状态码。响应状态码根据响应的实际情况获取。例如网页请求状态码为404,则表示服务器找不到请求的网页;网页请求状态码为403,则表示服务器拒绝请求;这些状态码均是服务器没有成功处理下载请求返回的状态码。
步骤S106:若网页请求状态码等于预设状态码,则待识别网页的网页源码下载成功。
作为示例性的实施例,网页请求状态码等于预设状态码,服务器成功处理了下载请求,得到待识别网页的网页源码。
上述步骤先下载URL查看是否获取到源码;然后,判断网页状态码是否为200。通过对URL下载结果和网页请求状态码的判断,得到待识别网页的网页源码,具体地,下载URL查看是否获取到源码;未获取到源码则返回异常;成功获取到源码则检测状态码是否为200;其他状态码则返回异常;状态码为200时则往下进行编码处理。
作为示例性的实施例,步骤S2对网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码的步骤中,如图3所示,包括步骤S201-S206。
步骤S201:通过chardet库对网页源码进行编码类型匹配,得到编码类型匹配结果。
作为示例性的实施例,chardet库是python中的一个编码方式检测库,对编码类型进行检测并返回检测结果。chardet库中包含若干正确编码的编码类型,具体地可包括Gbk、utf-8、UTF-8-SIG、SHIFT_JIS、GB2312、Big5、EUC-JP、ascii、CP932、EUC-KR、UTF-16、ISO-8859-5、IBM866、ISO-8859-1、Windows-1252、ISO-8859-9等,本实施例对此仅作示意性说明,不以此为限。通过chardet库对网页源码进行编码类型匹配,即将网页源码与chardet库中的编码类型进行逐一比较,查看网页源码的编码类型是否与chardet库中的编码类型相匹配,得到编码类型匹配结果。
步骤S202:若编码类型匹配结果为匹配成功,则将网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码。
作为示例性的实施例,编码类型匹配结果为匹配成功,则说明网页源码编码正常。如果下载下来的网页源码的编码和网页所描述的编码类型不符合,则一些中文字符均为无法正常查看的乱码,为了网页源码内容的正常获取,将网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码。
步骤S203:若编码类型匹配结果为匹配失败,则从网页源码中识别编码类型。
作为示例性的实施例,编码类型匹配结果为匹配失败,则说明chardet中的编码类型不包含网页源码的编码类型,则需要从网页源码中进行编码类型的识别。
具体地,通过chardet库对网页源码匹配编码类型;成功匹配到编码类型则将所述网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;未匹配到编码类型时便获取网页源码的编码类型。
步骤S204:若从网页源码中能够识别出编码类型,则将网页源码按照识别出的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码。
作为示例性的实施例,可通过网页编码中的charset得到编码类型,将网页源码按照charset的编码规则进行编码转换,得到转换后的网页源码。
步骤S205:若从网页源码中不能够识别出编码类型,则将网页源码按照预设编码类型所对应的编码规则进行编码转换,得到转换后的网页源码。
作为示例性的实施例,从网页源码中不能够识别出编码类型,则将网页源码按照预设编码类型进行编码转换,得到转换后的网页源码。本实施例中,预设编码类型为UTF-8;当然,在其它实施例中,预设编码类型也可以设置为其它类型,如GBK2312等,根据需要合理设置即可。
步骤S206:对转换后的网页源码进行非正文标签去除处理,得到网页正文源码。
作为示例性的实施例,正文标签为包含在<body></body>内部的标签,如div、span、ul、li等标签,其它位置上的标签为非正文标签,如scrip、style等。对转换后的网页源码进行非正文标签的去除,滤除干扰信息,提高频道定位的准确性。
上述步骤,通过chardet库对网页源码匹配编码类型;获取网页源码charset的编码类型;去除网页源码的一些js、css的渲染标签,得到网页正文源码。通过对网页源码的编码类型进行识别和编码转换,保证网页源码的编码正确,防止因编码问题导致获取到的数据不正常;对转换后的网页源码进行非正文标签去除,仅保留正文标签,避免非正文标签中的文本影响频道定位的准确性。
作为示例性的实施例,步骤S3通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码的步骤中,如图4所示,包括步骤S301-S307。
步骤S301:判断网页正文源码中是否包含频道标志符号。若网页正文源码中包含频道标志符号,则执行步骤S302;若网页正文源码中不包含频道标志符号,则执行步骤S303。
作为示例性的实施例,频道标志符号是通过对大量网页中频道之间的分隔符号进行统计分析得到的,是对频道进行分隔的符号,具体可包括“/”、“>”、“-”、“→”等。网页频道导航栏通过频道标志符号进行频道分割,故可通过网页正文源码中是否包含有频道标志符号来对导航栏进行定位。
步骤S302:若网页正文源码中包含频道标志符号,则根据频道标志符号进行网页频道导航栏的位置定位,得到定位后的源码。通过频道标志符号实现快速定位,无需遍历整个源码。
步骤S303:若网页正文源码中不包含频道标志符号,则判断网页正文源码中是否包含频道关键词。若网页正文源码中包含频道关键词,则执行步骤S304;若网页正文源码中不包含频道关键词,则执行步骤S305。
作为示例性的实施例,通过对大量网页中频道常用词进行统计分析得到频道关键词(如正文、首页、位置等频道常用词)。网页正文源码中不包含频道标志符号,无法直接通过频道标志符号进行频道定位,则可通过频道关键词进行定位识别。
步骤S304:若网页正文源码中包含频道关键词,则根据频道关键词进行网页频道导航栏的位置定位,得到定位后的源码。通过频道关键词实现快速定位,无需遍历整个源码。
步骤S305:若网页正文源码中不包含频道关键词,则判断网页正文源码中是否包含发文时间。若网页正文源码中包含发文时间,则执行步骤S306;若网页正文源码中不包含发文时间,则执行步骤S307。
作为示例性的实施例,通常网页中会标注发文时间(发文日期),在不能通过频道关键词进行定位时,可通过发文时间进行定位。
步骤S306:若网页正文源码中包含发文时间,则根据发文时间进行网页频道导航栏的位置定位,得到定位后的源码。
作为示例性的实施例,若网页正文源码中包含发文时间,则遍历网页正文源码中的所有HTML标签,查找URL地址超链接和文本长度小于15位的信息,URL地址和文本所在位置即为网页频道导航栏的所在位置,得到定位后的源码。网页正文源码中包含发文时间,则遍历网页正文源码中的所有HTML标签,查找存在超链接的标签和文本,如果存在超链接的标签和对应文本,则进行获取,基本可以定位到所在位置即为网页频道导航栏的所在位置。
前面步骤中会对HTML标签优先匹配频道的特殊符号和频道关键词,以便来精确对HTML标签进行查找,找到频道信息。
步骤S307:若网页正文源码中不包含发文时间,则网页频道导航栏的位置定位异常。
作为示例性的实施例,网页正文源码中不包含发文时间,则无法定位到网页频道导航栏,返回定位异常。
上述步骤,根据频道标志符号进行网页频道导航栏的位置定位;根据频道关键词进行网页频道导航栏的位置定位;根据发文时间进行网页频道导航栏的位置定位。把源码的数据优先通过一些频道常见的特殊符号(例:|>-→)来进行定位,如果未获取到具体的频道数据,再通过“正文”、“首页”、“位置”等频道常用的关键词进行定位,如果通过关键词还无法定位到想要的数据,再通过文章的发文日期进行定位;使得定位更加快速。
作为示例性的实施例,步骤S13根据频道文本和URL赋值得到网页频道导航栏的频道信息的步骤之后,如图5所示,还包括步骤S14-S16。
步骤S14:将频道信息与城市地区库中的城市进行匹配,得到匹配结果。
作为示例性的实施例,收集全国省、市、县、乡镇等城市信息,将城市信息封装成城市地区库,城市地区库中存储有全国各个城市信息。将频道信息与城市地区库进行匹配,以便知道频道信息发生在哪一个城市,让用户通过文章链接,能够清楚的了解到当前新闻所涉及到的地区或城市。
步骤S15:若匹配结果为匹配失败,则将频道信息进行存储。
作为示例性的实施例,匹配结果为匹配失败,表明城市地区库中没有匹配的城市,则无法得知当前新闻所涉及的城市,则仅存储频道信息,返回频道信息。
步骤S16:若匹配结果为匹配成功,则按照省市区对频道信息进行分级,得到频道信息对应的城市信息,将频道信息和城市信息进行存储。
作为示例性的实施例,匹配结果为匹配成功,可以通过频道来定位到这个新闻所发生的城市,将频道信息和城市信息进行存储,返回频道信息和城市信息。
当获取到频道数据后,优先遍历之前存储好的省份信息来匹配频道数据,匹配到省份信息时便创建省份字段,为一级字段,未匹配到则忽略;然后再遍历市级信息匹配频道数据,匹配到市级信息时便创建市级字段,为二级字段,未匹配到则忽略;以下地区信息从高到低依次去频道信息中进行匹配,匹配结果分级整合。
上述步骤,收集全国省、市、县、乡镇等信息封装成地区库,然后拿获取到的频道信息去地区库里进行匹配,若匹配到则将城市信息则按照省市区进行分级,拼接成完整信息进行存储;为有单独需求城市信息的用户提取出城市信息。
在本实施例中还提供了一种网页频道导航栏提取系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例还提供一种网页频道导航栏提取系统,如图6所示,包括:获取模块1、第一处理模块2、第二处理模块3、第一判断模块4、第三处理模块5、第四处理模块6、第五处理模块7、第二判断模块8、第六处理模块9、第三判断模块10、第七处理模块11、第八处理模块12和第九处理模块13。
获取模块1,用于获取待识别网页的网页源码,所述网页源码包含网页频道导航栏,所述网页频道导航栏包括至少一个频道;详细内容参考步骤S1所述。
第一处理模块2,用于对所述网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码;详细内容参考步骤S2所述。
第二处理模块3,用于通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码;详细内容参考步骤S3所述。
第一判断模块4,用于判断所述定位后的源码是否包含a标签;详细内容参考步骤S4所述。
第三处理模块5,用于若定位后的源码包含a标签,则通过a标签对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;详细内容参考步骤S5所述。
第四处理模块6,用于若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;详细内容参考步骤S6所述。
第五处理模块7,用于对所述频道分割数组按照正序排列进行分级,依次获取所述频道分割数组中每一个频道所对应的频道文本和频道URL;详细内容参考步骤S7所述。
第二判断模块8,用于判断频道URL是否存在;详细内容参考步骤S8所述。
第六处理模块9,用于若频道URL不存在,则将URL赋值为空;详细内容参考步骤S9所述。
第三判断模块10,用于若频道URL存在,则判断所述频道URL是否正常;详细内容参考步骤S10所述。
第七处理模块11,用于若所述频道URL不正常,则将URL赋值为空;详细内容参考步骤S11所述。
第八处理模块12,用于若所述频道URL正常,则将URL赋值为所述频道URL;详细内容参考步骤S12所述。
第九处理模块13,用于根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息;详细内容参考步骤S13所述。
作为示例性的实施例,所述获取模块包括:第一处理单元,用于对待识别网页的URL进行URL下载,得到URL下载结果,详细内容参考步骤S101所述;第一判断单元,用于判断所述URL下载结果是否为空,详细内容参考步骤S102所述;第二处理单元,用于若所述URL下载结果为空,则返回URL异常,详细内容参考步骤S103所述;第三处理单元,用于若所述URL下载结果不为空,则判断网页请求状态码是否等于预设状态码,详细内容参考步骤S104所述;第四处理单元,用于若网页请求状态码不等于预设状态码,则返回URL异常,详细内容参考步骤S105所述;第五处理单元,用于若网页请求状态码等于预设状态码,则待识别网页的网页源码下载成功,详细内容参考步骤S106所述。
作为示例性的实施例,所述第一处理模块包括:第六处理单元,用于通过chardet库对所述网页源码进行编码类型匹配,得到编码类型匹配结果,详细内容参考步骤S201所述;第七处理单元,用于若编码类型匹配结果为匹配成功,则将所述网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码,详细内容参考步骤S202所述;第八处理单元,用于若编码类型匹配结果为匹配失败,则从网页源码中识别编码类型,详细内容参考步骤S203所述;第九处理单元,用于若从网页源码中能够识别出编码类型,则将网页源码按照识别出的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码,详细内容参考步骤S204所述;第十处理单元,用于若从网页源码中不能够识别出编码类型,则将网页源码按照预设编码类型所对应的编码规则进行编码转换,得到转换后的网页源码,详细内容参考步骤S205所述;第十一处理单元,用于对转换后的网页源码进行非正文标签去除处理,得到网页正文源码,详细内容参考步骤S206所述。
作为示例性的实施例,所述第二处理模块包括:第二判断单元,用于判断网页正文源码中是否包含频道标志符号,详细内容参考步骤S301所述;第十二处理单元,用于若网页正文源码中包含频道标志符号,则根据所述频道标志符号进行网页频道导航栏的位置定位,得到定位后的源码,详细内容参考步骤S302所述;第三判断单元,用于若网页正文源码中不包含频道标志符号,则判断网页正文源码中是否包含频道关键词,详细内容参考步骤S303所述;第十三处理单元,用于若网页正文源码中包含频道关键词,则根据所述频道关键词进行网页频道导航栏的位置定位,得到定位后的源码,详细内容参考步骤S304所述;第四判断单元,用于若网页正文源码中不包含频道关键词,则判断网页正文源码中是否包含发文时间,详细内容参考步骤S305所述;第十四处理单元,用于若网页正文源码中包含发文时间,则根据所述发文时间进行网页频道导航栏的位置定位,得到定位后的源码,详细内容参考步骤S306所述;第十五处理单元,用于若网页正文源码中不包含发文时间,则网页频道导航栏的位置定位异常,详细内容参考步骤S307所述。
作为示例性的实施例,所述第十四处理单元包括:处理子单元,用于若网页正文源码中包含发文时间,则遍历网页正文源码中的所有html标签,查找超链接和文本,所述超链接和文本所在位置即为网页频道导航栏的所在位置,得到定位后的源码。
作为示例性的实施例,所述第二判断模块包括:第五判断子单元,用于判断所述频道URL中是否包含待识别网页的网站域名。
作为示例性的实施例,该系统还包括:第九处理模块,用于将所述频道信息与城市地区库中的城市进行匹配,得到匹配结果,详细内容参考步骤S14所述;第十处理模块,用于若所述匹配结果为匹配失败,则将频道信息进行存储,详细内容参考步骤S15所述;第十一处理模块,用于若所述匹配结果为匹配成功,则按照省市区对频道信息进行分级,得到频道信息对应的城市信息,将频道信息和城市信息进行存储,详细内容参考步骤S16所述。
本实施例中的网页频道导航栏提取系统是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供了一种电子设备,如图7所示,该电子设备包括一个或多个处理器71以及存储器72,图7中以一个处理器71为例。
该控制器还可以包括:输入装置73和输出装置74。
处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器71可以为中央处理器(Central Processing Unit,CPU)。处理器71还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器72作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的网页频道导航栏提取方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的网页频道导航栏提取方法。
存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置73可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
一个或者多个模块存储在存储器72中,当被一个或者多个处理器71执行时,执行如图1-5所示的网页频道导航栏提取方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,被执行的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述网页频道导航栏提取方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (5)
1.一种网页频道导航栏提取方法,其特征在于,包括:
获取待识别网页的网页源码,所述网页源码包含网页频道导航栏,所述网页频道导航栏包括至少一个频道;
获取待识别网页的网页源码的步骤中,包括:
对待识别网页的URL进行URL下载,得到URL下载结果;
判断所述URL下载结果是否为空;
若所述URL下载结果为空,则返回URL异常;
若所述URL下载结果不为空,则判断网页请求状态码是否等于预设状态码;
若网页请求状态码不等于预设状态码,则返回URL异常;
若网页请求状态码等于预设状态码,则待识别网页的网页源码下载成功;
对所述网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码,其包括:
通过chardet库对所述网页源码进行编码类型匹配,得到编码类型匹配结果;
若编码类型匹配结果为匹配成功,则将所述网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;
若编码类型匹配结果为匹配失败,则从网页源码中识别编码类型;
若从网页源码中能够识别出编码类型,则将网页源码按照识别出的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;
若从网页源码中不能够识别出编码类型,则将网页源码按照预设编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;
对转换后的网页源码进行非正文标签去除处理,得到网页正文源码;
通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码,其包括:
判断网页正文源码中是否包含频道标志符号;
若网页正文源码中包含频道标志符号,则根据所述频道标志符号进行网页频道导航栏的位置定位,得到定位后的源码;
若网页正文源码中不包含频道标志符号,则判断网页正文源码中是否包含频道关键词;
若网页正文源码中包含频道关键词,则根据所述频道关键词进行网页频道导航栏的位置定位,得到定位后的源码;
若网页正文源码中不包含频道关键词,则判断网页正文源码中是否包含发文时间;
若网页正文源码中包含发文时间,则遍历网页正文源码中的所有html标签,查找超链接和文本,所述超链接和文本所在位置即为网页频道导航栏的所在位置,得到定位后的源码
若网页正文源码中不包含发文时间,则网页频道导航栏的位置定位异常;
判断所述定位后的源码是否包含a标签;
若定位后的源码包含a标签,则通过a标签对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;
若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;
对所述频道分割数组按照正序排列进行分级,依次获取所述频道分割数组中每一个频道所对应的频道文本和频道URL;
判断频道URL是否存在;
若频道URL不存在,则将URL赋值为空;
若频道URL存在,则判断所述频道URL是否正常,包括:判断所述频道URL中是否包含待识别网页的网站域名;
若所述频道URL不正常,则将URL赋值为空;
若所述频道URL正常,则将URL赋值为所述频道URL;
根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息。
2.如权利要求1中所述的网页频道导航栏提取方法,其特征在于,根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息的步骤之后,还包括:
将所述频道信息与城市地区库中的城市进行匹配,得到匹配结果;
若所述匹配结果为匹配失败,则将频道信息进行存储;
若所述匹配结果为匹配成功,则按照省市区对频道信息进行分级,得到频道信息对应的城市信息,将频道信息和城市信息进行存储。
3.一种网页频道导航栏提取系统,其特征在于,包括:
获取模块,用于获取待识别网页的网页源码,所述网页源码包含网页频道导航栏,所述网页频道导航栏包括至少一个频道,包括:
对待识别网页的URL进行URL下载,得到URL下载结果;
判断所述URL下载结果是否为空;
若所述URL下载结果为空,则返回URL异常;
若所述URL下载结果不为空,则判断网页请求状态码是否等于预设状态码;
若网页请求状态码不等于预设状态码,则返回URL异常;
若网页请求状态码等于预设状态码,则待识别网页的网页源码下载成功;
第一处理模块,用于对所述网页源码进行编码格式处理和非正文标签去除处理,得到网页正文源码;包括:
包括:
通过chardet库对所述网页源码进行编码类型匹配,得到编码类型匹配结果;
若编码类型匹配结果为匹配成功,则将所述网页源码按照匹配到的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;
若编码类型匹配结果为匹配失败,则从网页源码中识别编码类型;
若从网页源码中能够识别出编码类型,则将网页源码按照识别出的编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;
若从网页源码中不能够识别出编码类型,则将网页源码按照预设编码类型所对应的编码规则进行编码转换,得到转换后的网页源码;
对转换后的网页源码进行非正文标签去除处理,得到网页正文源码;第二处理模块,用于通过匹配频道标志符号、频道关键词和发文时间对所述网页正文源码进行网页频道导航栏的位置定位,得到定位后的源码;其包括:
判断网页正文源码中是否包含频道标志符号;
若网页正文源码中包含频道标志符号,则根据所述频道标志符号进行网页频道导航栏的位置定位,得到定位后的源码;
若网页正文源码中不包含频道标志符号,则判断网页正文源码中是否包含频道关键词;
若网页正文源码中包含频道关键词,则根据所述频道关键词进行网页频道导航栏的位置定位,得到定位后的源码;
若网页正文源码中不包含频道关键词,则判断网页正文源码中是否包含发文时间;
若网页正文源码中包含发文时间,则遍历网页正文源码中的所有html标签,查找超链接和文本,所述超链接和文本所在位置即为网页频道导航栏的所在位置,得到定位后的源码
若网页正文源码中不包含发文时间,则网页频道导航栏的位置定位异常;
第一判断模块,用于判断所述定位后的源码是否包含a标签;
第三处理模块,用于若定位后的源码包含a标签,则通过a标签对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;
第四处理模块,用于若定位后的源码不包含a标签,则通过频道标志符号对定位后的源码进行分割,得到网页频道导航栏的频道分割数组;
第五处理模块,用于对所述频道分割数组按照正序排列进行分级,依次获取所述频道分割数组中每一个频道所对应的频道文本和频道URL;
第二判断模块,用于判断频道URL是否存在;
第六处理模块,用于若频道URL不存在,则将URL赋值为空;
第三判断模块,用于若频道URL存在,则判断所述频道URL是否正常;包括:判断所述频道URL中是否包含待识别网页的网站域名;
第七处理模块,用于若所述频道URL不正常,则将URL赋值为空;
第八处理模块,用于若所述频道URL正常,则将URL赋值为所述频道URL;
第九处理模块,用于根据所述频道文本和所述URL赋值得到网页频道导航栏的频道信息。
4.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-2任意一项所述的网页频道导航栏提取方法。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-2任意一项所述的网页频道导航栏提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461252.6A CN112230989B (zh) | 2020-12-14 | 2020-12-14 | 网页频道导航栏提取方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461252.6A CN112230989B (zh) | 2020-12-14 | 2020-12-14 | 网页频道导航栏提取方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112230989A CN112230989A (zh) | 2021-01-15 |
CN112230989B true CN112230989B (zh) | 2021-03-12 |
Family
ID=74124633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011461252.6A Active CN112230989B (zh) | 2020-12-14 | 2020-12-14 | 网页频道导航栏提取方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112230989B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392354B (zh) * | 2021-06-28 | 2022-09-13 | 山东亿云信息技术有限公司 | 一种网页正文解析方法、系统、介质及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100432996C (zh) * | 2004-12-07 | 2008-11-12 | 国际商业机器公司 | 基于网页页面布局提取网页核心内容的系统、方法 |
CN103064827A (zh) * | 2013-01-16 | 2013-04-24 | 盘古文化传播有限公司 | 一种网页内容抽取的方法及装置 |
CN103823824B (zh) * | 2013-11-12 | 2017-04-05 | 哈尔滨工业大学深圳研究生院 | 一种借助互联网自动构建文本分类语料库的方法及系统 |
CN104765823A (zh) * | 2015-04-08 | 2015-07-08 | 天脉聚源(北京)传媒科技有限公司 | 一种网站数据采集的方法及装置 |
CN105589913A (zh) * | 2015-06-15 | 2016-05-18 | 广州市动景计算机科技有限公司 | 一种提取页面信息的方法及装置 |
CN110795933B (zh) * | 2019-09-30 | 2023-10-31 | 奇安信科技集团股份有限公司 | 一种网页正文的识别处理方法及装置 |
CN111625748B (zh) * | 2020-06-01 | 2024-01-09 | 深圳市小满科技有限公司 | 网站的导航栏信息提取方法、装置、电子设备及存储介质 |
-
2020
- 2020-12-14 CN CN202011461252.6A patent/CN112230989B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112230989A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101154224B (zh) | 一种网址导航方法及系统 | |
CN102270206A (zh) | 一种有效网页内容的抓取方法及装置 | |
CN109492177B (zh) | 一种基于网页语义结构的网页分块方法 | |
CN103294781A (zh) | 一种用于处理页面数据的方法与设备 | |
CN106547749B (zh) | 网页数据采集的方法和装置 | |
CN103345532A (zh) | 一种网页信息抽取方法及装置 | |
CN104331438A (zh) | 对小说网页内容选择性抽取方法和装置 | |
CN106294885A (zh) | 一种面向异构网页的数据收集与标注方法 | |
CN112818200A (zh) | 基于静态网站的数据爬取及事件分析方法及系统 | |
CN112230989B (zh) | 网页频道导航栏提取方法、系统、电子设备及存储介质 | |
CN107145591B (zh) | 一种基于标题的网页有效元数据内容提取方法 | |
JP4724158B2 (ja) | モバイル機器におけるフォーム自動記入方法および装置 | |
CN103455572B (zh) | 获取网页中影视主体的方法及装置 | |
CN109165373B (zh) | 一种数据处理方法及装置 | |
CN106897287B (zh) | 网页发布时间抽取方法和用于网页发布时间抽取的装置 | |
CN112232075A (zh) | 基于时间格式和网页元素特征的文章发布时间识别方法 | |
CN112612990A (zh) | 网页解析方法、系统及计算机可读存储介质 | |
CN110489528B (zh) | 基于电子书内容的电子词典重构方法及计算设备 | |
CN105447191A (zh) | 提供图文引导步骤的智能摘要方法及相应装置 | |
CN111158973B (zh) | 一种web应用动态演化监测方法 | |
CN103118028B (zh) | 基于网页解析的安全扫描方法及系统 | |
CN109948015B (zh) | 一种元搜索列表结果抽取方法及系统 | |
CN113806647A (zh) | 识别开发框架的方法及相关设备 | |
CN113139145B (zh) | 页面生成方法、装置、电子设备及可读存储介质 | |
JP2009205499A (ja) | ウェブページ特定装置、ウェブページ特定方法およびウェブページ特定用プログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |