CN113987320B - 基于智能页面解析的实时资讯爬虫方法、装置及设备 - Google Patents
基于智能页面解析的实时资讯爬虫方法、装置及设备 Download PDFInfo
- Publication number
- CN113987320B CN113987320B CN202111404747.XA CN202111404747A CN113987320B CN 113987320 B CN113987320 B CN 113987320B CN 202111404747 A CN202111404747 A CN 202111404747A CN 113987320 B CN113987320 B CN 113987320B
- Authority
- CN
- China
- Prior art keywords
- page
- detail
- detail page
- text
- article
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 40
- 238000009877 rendering Methods 0.000 claims abstract description 16
- 238000000605 extraction Methods 0.000 claims description 26
- 230000009193 crawling Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 4
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 239000011669 selenium Substances 0.000 description 3
- 229910052711 selenium Inorganic materials 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000087 stabilizing effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 239000011651 chromium Substances 0.000 description 1
- 229910052804 chromium Inorganic materials 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
-
- 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]
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 Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种基于智能页面解析的实时资讯爬虫方法、装置及计算机设备。所述方法包括:根据每个网站的XPath配置解析详情页面的URL,通过SQL查询组件将待爬取队列登陆到数据库的表中,利用爬虫流水线对详情页面的URL进行爬取,通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间;计算详情页面文章的MD5并写入数据库中;详情页面文章的正文标题、来源和发布时间和详情页面文章的MD5组成爬虫时刻页面快照;根据预先设置的定时任务和爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表。采用本方法能够提升爬虫准确率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种基于智能页面解析的实时资讯爬虫方法、装置、计算机设备和存储介质。
背景技术
官方媒体发布实时资讯在网页上,需要通过爬虫技术来提取网页上的文章标题,正文,发布时间,来源/作者等结构化信息,并通过自己的APP提供给最终用户。开发爬虫***将面临有多种问题,网页的标签结构缺乏统一规范,从而导致针对每种标签风格的网页都需要编写爬虫解析代码,提取结构化信息,开发工程量大,且难以维护,当原来的网页结构发生改版时,导致爬虫故障;出于监管要求,要具备可追溯性,即标题/发布时间/来源/内容等结构化信息需要与原来保持高度一致,当原网页的标题或者正文发生变更时,需要能够及时反映这种变更。
然而,目前的爬虫技术存在缺陷:一个是无法获取标题/来源/发布时间等信息;一个是无法正确解析短讯类文章的正文,反而会爬到公司简介或者导航页面,导航列表之类的内容;不能达到较高的准确度(既不能包含页面广告,导航,等垃圾信息,也不能遗漏掉某些段落);对于通过异步接口动态获取后台数据,并渲染的网页,无法根据html文本进行自动化解析,无法应对原页面内容发生变化的情况(诸如撤稿、内容修订等),准确性低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升爬虫准确率的基于智能页面解析的实时资讯爬虫方法、装置、计算机设备和存储介质。
一种基于智能页面解析的实时资讯爬虫方法,所述方法包括:
获取待爬页面列表;待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath;
根据实时资讯列表页面的URL和详情列表页面的XPath,得到详情页面的URL;
根据每个网站的XPath配置解析详情页面的URL,将详情页面的URL写入待爬取队列;
通过SQL查询组件将待爬取队列登陆到数据库的表中,利用爬虫流水线对详情页面的URL进行爬取,得到详情页面的HTML文档;
通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间;
将详情页面文章的正文标题、来源和发布时间输出到数据库的表中,同时计算详情页面文章的MD5并写入数据库中;
详情页面文章的正文标题、来源和发布时间和详情页面文章的MD5组成爬虫时刻页面快照;
根据预先设置的定时任务和爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表。
在其中一个实施例中,通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间,包括:通过预先设置的自动页面解析算法对详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间;若抽取失败,则通过调用无头浏览器对详情页面进行页面渲染,得到详情页面的HTML文档;根据预先设置的自动页面解析算法对最终HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间。
在其中一个实施例中,通过预先设置的自动页面解析算法对详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间,包括:
对详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分;其中,得分最高的标签为正文的包含标签;
根据正文的包含标签,得到详情页面文章的正文标题、来源和发布时间。
在其中一个实施例中,对详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分,包括:
将HTML文档转换为Dom文档树,计算Dom文档树中的所有包含标签的文字密度;
根据文字密度、标点符号数,对p标签的加权,对li标签和a标签的惩罚,得到每个包含标签的最终得分。
在其中一个实施例中,根据文字密度、标点符号数,对p标签的加权,对li标签和a标签的惩罚,得到每个包含标签的最终得分,包括:
在其中一个实施例中,根据正文的包含标签,得到详情页面文章的正文标题、来源和发布时间,包括:
计算正文的包含标签与HTML文档中的标签的标签特征相似度,得到第一得分;
根据基于分词交集/并集的jaccard度量计算HTML文档中的标签与metaTitle相似度,得到第二得分;
利用textrank算法对正文的包含标签中的正文内容进行关键字提取,计算关键字与HTML文档中的标签的内容的相似度,得到第三得分;
将第一得分、第二得分、第三得分以及非标题的惩罚分数进行相加,得到每个标签的综合得分;其中综合得分最高的标签的内容为详情页面文章的正文标题。
在其中一个实施例中,根据预先设置的匹配规则,对HTML文档中的标签的内容进行匹配,匹配成功,则返回来源和发布时间。
在其中一个实施例中,根据预先设置的定时任务对已爬取过的详情页面进行轮询,得到变更的文章列表,包括:
根据预先设置的定时任务对已爬取过的详情页面进行轮询,重新爬取,爬取得到的爬虫时刻页面快照与历史时刻的爬虫时刻页面快照逐一比对,得到变更的文章列表。
一种基于智能页面解析的实时资讯爬虫装置,所述装置包括:
获取详情页面的URL模块,用于获取待爬页面列表;待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath;根据实时资讯列表页面的URL和详情列表页面的XPath,得到详情页面的URL;
爬取模块,用于根据每个网站的XPath配置解析详情页面的URL,将详情页面的URL写入待爬取队列;通过SQL查询组件将待爬取队列登陆到数据库的表中,利用爬虫流水线对详情页面的URL进行爬取,得到详情页面的HTML文档;
文档抽取模块,用于通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间;
获取爬虫时刻页面快照模块,用于将详情页面文章的正文标题、来源和发布时间输出到数据库的表中,同时计算详情页面文章的MD5并写入数据库中;详情页面文章的正文标题、来源和发布时间和详情页面文章的MD5组成爬虫时刻页面快照;
轮询模块,用于根据预先设置的定时任务和爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待爬页面列表;待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath;
根据实时资讯列表页面的URL和详情列表页面的XPath,得到详情页面的URL;
根据每个网站的XPath配置解析详情页面的URL,将详情页面的URL写入待爬取队列;
通过SQL查询组件将待爬取队列登陆到数据库的表中,利用爬虫流水线对详情页面的URL进行爬取,得到详情页面的HTML文档;
通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间;
将详情页面文章的正文标题、来源和发布时间输出到数据库的表中,同时计算详情页面文章的MD5并写入数据库中;
详情页面文章的正文标题、来源和发布时间和详情页面文章的MD5组成爬虫时刻页面快照;
根据预先设置的定时任务和爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表。
上述基于智能页面解析的实时资讯爬虫方法、装置和计算机设备,本申请首先解析详情页面的URL,利用爬虫流水线对详情页面的URL进行爬取,得到详情页面的HTML文档,通过基于HTML标签/文字/标点符号密度的自动页面解析算法识别详情页面的HTML文档,或通过无头浏览器进行页面渲染后结合预先设置的自动页面解析算法对详情页面的HTML文档进行抽取,自动化提取详情页面文章的内容,提高了正确爬取详情页面文章内容的爬虫准确率,并通过定时轮询原网页,基于爬虫时刻页面快照快速判断原始内容是否发生变更,提高了准确判断详情页面是否发生变更的准确度和效率。
附图说明
图1为一个实施例中基于智能页面解析的实时资讯爬虫方法的流程示意图;
图2为一个实施例中基于智能页面解析的实时资讯爬虫装置的结构框图;
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于智能页面解析的实时资讯爬虫方法,包括以下步骤:
步骤102,获取待爬页面列表;待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath;根据实时资讯列表页面的URL和详情列表页面的XPath,得到详情页面的URL。
实时资讯列表页面中包含多种页面,比如广告,导航信息以及媒体公司简介等,详情列表页面的XPath对实时资讯列表页面的URL进行解析,可以得到详情页面的URL。
步骤104,根据每个网站的XPath配置解析详情页面的URL,将详情页面的URL写入待爬取队列;通过SQL查询组件将待爬取队列登陆到数据库的表中,利用爬虫流水线对详情页面的URL进行爬取,得到详情页面的HTML文档。
本申请通过新增SQL查询组件把待爬取队列登陆数据库的表中,通过一个爬虫流水线即可完成几十上百个网站爬虫,利用SQL遍历待爬网站列表,根据每个网站的XPath配置解析详情页面的URL写入待爬取队列。
步骤106,通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间。
预先设置的自动页面解析算法为基于HTML标签/文字/标点密度的自动页面解析算法,通过该算法首先抽取HTML文档中的正文,再抽取正文标题,来源和发布时间,当自动页面解析算法抽取正文失败时,说明页面内容是通过调用后台API动态渲染的,需要先使用无头浏览器进行页面渲染,来得到详情页面的HTML文档,再次使用基于HTML标签/文字/标点符号密度的自动页面解析算法对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间。
步骤108,将详情页面文章的正文标题、来源和发布时间输出到数据库的表中,同时计算详情页面文章的MD5并写入数据库中;详情页面文章的正文标题、来源和发布时间和详情页面文章的MD5组成爬虫时刻页面快照。
MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。因此,我们可以通过对比同一文件的MD5值,来校验这个文件是否被“篡改”过,利用详情页面文章的正文标题、来源和发布时间组成的字符串作为输入,算出MD5做为爬虫时刻页面快照,用来与上一次爬取得到的爬虫时刻页面快照进行对比,得到变更的详情页面文章列表。
步骤110,根据预先设置的定时任务和爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表。
爬虫流水线每一分钟都在重新调度,并且文章内容在不时更新,需要设定定时任务对过去时间内的资讯进行重新爬取,对已爬取过的爬虫时刻页面快照逐一比对,发生变化时记录flag字段,得到变更的文章列表。
上述基于智能页面解析的实时资讯爬虫方法中,本申请首先解析详情页面的URL,利用爬虫流水线对详情页面的URL进行爬取,得到详情页面的HTML文档,通过基于HTML标签/文字/标点符号密度的自动页面解析算法识别详情页面的HTML文档,或通过无头浏览器进行页面渲染后结合预先设置的自动页面解析算法对详情页面的HTML文档进行抽取,自动化提取详情页面文章的内容,提高了正确爬取详情页面文章内容的爬虫准确率,并通过定时轮询原网页,基于爬虫时刻页面快照快速判断原始内容是否发生变更,提高了准确判断详情页面是否发生变更的准确度和效率。
在其中一个实施例中,通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间,包括:通过预先设置的自动页面解析算法对详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间;若抽取失败,则通过调用无头浏览器对详情页面进行页面渲染,得到详情页面的HTML文档;根据预先设置的自动页面解析算法对最终HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间。
当自动页面解析算法对详情页面的HTML文档进行抽取失败时,说明页面内容是通过调用后台API动态渲染的,此时,使用selenium调用无头浏览器详情页面进行页面渲染,模拟浏览器请求URL,得到详情页面的HTML文档。
selenium是web应用程序测试工具,使用javascript模拟真实用户对浏览器进行操作。本申请使用selenium api调用chromium无头浏览器的驱动程序,模拟用户请求详情页面的URL,得到详情页面HTML文档。
在其中一个实施例中,通过预先设置的自动页面解析算法对详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间,包括:对详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分;其中,得分最高的标签为正文的包含标签;根据正文的包含标签,得到详情页面文章的正文标题、来源和发布时间。
在另一个实施例中,对详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分,包括:
将HTML文档转换为Dom文档树,计算Dom文档树中的所有包含标签的文字密度;
其中,TDi表示文字密度,Ti表示结点i的字数,LTi表示结点i的链接文本字数(a标签中的文字),TGi表示结点i的标签个数,LTGi表示结点i的超链接中的标签个数(a标签中的文字)。
在其中一个实施例中,根据文字密度、标点符号数,对p标签的加权,对li标签和a标签的惩罚,得到每个包含标签的最终得分,包括:
一个新闻网页,往往包含标题,正文,发布时间,来源等信息;同时也包含了导航,广告等噪声信息,正文信息和噪声信息的区分在于正文中的标签和超链接的比重较少,标点符号比较多,长短段落字数差别大,段落p标签比较多,故本申请提出了一种基于HTML标签/文字/标点密度的自动页面解析算法,首先将HTML文档转换为Dom档树,计算Dom档树中的所有包含标签的文字密度;根据文字密度、标点符号数,对p标签的加权,对a标签和li标签的惩罚,得到每个包含标签的最终得分;
包含标签是指包含了很多的p标签,a标签和li标签以及相关文本的标签;
Dom文档树分为带有显示文本的叶子结点和不带显示文本的非叶子结点,并且段落之间的文本长度,在正文中差异较大,在导航页面差异较小,因此计算包含标签的文字密度,若包含标签的文字密度越大,则证明该包含标签的文字密度对应的文本属于正文的概率越大;a标签中的文本都是超链接,通常用于导航区域,不是有效文本;且噪声结点包含a标签和li标签的数量较多,正文中的文本有效字数相对较多,并且由p标签进行分段,包含p标签较多,对li标签和a标签的惩罚作为减分项,对p标签的加权作为加分项,根据得到的最终的得分,有利于抽取正文,并且正文跟文字密度正相关,文字密度越大越好,文字数和标点符号数量也越多越好,因此使用对数平抑权重,同理,叶子结点文本字符数标准差和p标签也使用对数平抑权重。
在其中一个实施例中,根据正文的包含标签,得到详情页面文章的正文标题、来源和发布时间,包括:
计算正文的包含标签与HTML文档中的标签的标签特征相似度,得到第一得分;
根据基于分词交集/并集的jaccard度量计算HTML文档中的标签与metaTitle相似度,得到第二得分;
利用textrank算法对正文的包含标签中的正文内容进行关键字提取,计算关键字与HTML文档中的标签的内容的相似度,得到第三得分;
将第一得分、第二得分、第三得分以及非标题的惩罚分数进行相加,得到每个标签的综合得分;其中综合得分最高的标签的内容为详情页面文章的正文标题。
正文的包含标签是指包含了正文内容的标签,由于标题一般位于正文,标签序号大于正文标签序号,计算正文的包含标签与HTML文档中的标签的标签特征相似度,可以得到标签序号与正文标签序号之间的相似度;
含有metaTitle字样的标签和正文内容的关键字相同的标签属于标题的可能性较大,因此计算计算HTML文档中的标签与metaTitle相似度与计算关键字与HTML文档中的标签的内容的相似度可以减少误差,为之后标签抽取增加召回率,若初次抽取标题失败,对得分较高的标签可以进行二次抽取,来得到标题的标签;
由于标题和内容之间往往包含其他诸如:来源,发布时间,微信分享等干扰信息,增加一个惩罚分数来抑制明确的非标题信息的标签的得分可以提高正确找到标题对应的标签的概率。
综合上述四种得分,可以提高正确提取标题的几率。
在其中一个实施例中,根据预先设置的匹配规则,对HTML文档中的标签的内容进行匹配,匹配成功,则返回来源和发布时间。
来源和发布时间往往出现在标题和正文之间,可以基于标签路径,对于标题标签和正文标签之间的标签进行遍历,减小搜索范围。
来源提取主要通过配置规则:"((来源)|(作者:)|(发布者)|(发布))+"来抽取,但无法保证100%准确,结合预定义的来源列表进行匹配能大幅提升准确度。
发布时间,结合标签路径和正则表达式匹配进行抽取,其中正则表达式为:([1-2][0-9]{3})[^0-9]{0,5}?([0-1]?[0-9])[^0-9]{0,5}?([0-9]{1,2})[^0-9]{0,5}?\s(20|21|22|23|[0-1]\d):([0-5]\d)(:[0-5]\d)?,其中?代表前面的字符最多只出现一次;
基于正则表达式,可以匹配到各种类型的时间,诸如此类很不规范的格式:【2020年07-09 09:01】【2020-07-09日09:01:39】。
在其中一个实施例中,根据预先设置的定时任务对已爬取过的详情页面进行轮询,得到变更的文章列表,包括:
根据预先设置的定时任务对已爬取过的详情页面进行轮询,重新爬取,爬取得到的爬虫时刻页面快照与历史时刻的爬虫时刻页面快照逐一比对,得到变更的文章列表。
历史时刻是指此次之间的时刻,轮询是指不断的重新爬取,爬虫流水线每一分钟都在重新调度,并且文章内容在不时更新,需要设定定时任务对过去时间内的资讯进行重新爬取,对已爬取过的爬虫时刻页面快照逐一比对,发生变化时记录flag字段,得到变更的文章列表。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图2所示,提供了一种基于智能页面解析的实时资讯爬虫装置,包括:获取详情页面的URL模块202、爬取模块204、文档抽取模块206、获取爬虫时刻页面快照模块208和轮询模块210,其中:
获取详情页面的URL模块202,用于获取待爬页面列表;待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath;根据实时资讯列表页面的URL和详情列表页面的XPath,得到详情页面的URL。
爬取模块204,用于根据每个网站的XPath配置解析详情页面的URL,将详情页面的URL写入待爬取队列;通过SQL查询组件将待爬取队列登陆到数据库的表中,利用爬虫流水线对详情页面的URL进行爬取,得到详情页面的HTML文档。
文档抽取模块206,用于通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间。
获取爬虫时刻页面快照模块208,用于将详情页面文章的正文标题、来源和发布时间输出到数据库的表中,同时计算详情页面文章的MD5并写入数据库中;详情页面文章的正文标题、来源和发布时间和详情页面文章的MD5组成爬虫时刻页面快照。
轮询模块210,用于根据预先设置的定时任务和爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表。
在其中一个实施例中,文档抽取模块206还用于通过预先设置的自动页面解析算法对详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间;若抽取失败,则通过调用无头浏览器对详情页面进行页面渲染,得到详情页面的HTML文档;根据预先设置的自动页面解析算法对最终HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间。
在其中一个实施例中,文档抽取模块206还用于对详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分;其中,得分最高的标签为正文的包含标签;根据正文的包含标签,得到详情页面文章的正文标题、来源和发布时间。
在其中一个实施例中,文档抽取模块206还用于对详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分,包括:
将HTML文档转换为Dom文档树,计算Dom文档树中的所有包含标签的文字密度;
根据文字密度、标点符号数,对p标签的加权,对li标签和a标签的惩罚,得到每个包含标签的最终得分。
在其中一个实施例中,文档抽取模块206还用于根据文字密度、标点符号数,对p标签的加权,对li标签和a标签的惩罚,得到每个包含标签的最终得分,包括:
在其中一个实施例中,文档抽取模块206还用于根据正文的包含标签,得到详情页面文章的正文标题、来源和发布时间,包括:
计算正文的包含标签与HTML文档中的标签的标签特征相似度,得到第一得分;
根据基于分词交集/并集的jaccard度量计算HTML文档中的标签与metaTitle相似度,得到第二得分;
利用textrank算法对正文的包含标签中的正文内容进行关键字提取,计算关键字与HTML文档中的标签的内容的相似度,得到第三得分;
将第一得分、第二得分、第三得分以及非标题的惩罚分数进行相加,得到每个标签的综合得分;其中综合得分最高的标签的内容为详情页面文章的正文标题。
在其中一个实施例中,文档抽取模块206还用于根据预先设置的匹配规则,对HTML文档中的标签的内容进行匹配,匹配成功,则返回来源和发布时间。
在其中一个实施例中,轮询模块210还用于根据预先设置的定时任务对已爬取过的详情页面进行轮询,重新爬取,爬取得到的爬虫时刻页面快照与历史时刻的爬虫时刻页面快照逐一比对,得到变更的文章列表。
关于基于智能页面解析的实时资讯爬虫装置的具体限定可以参见上文中对于基于智能页面解析的实时资讯爬虫方法的限定,在此不再赘述。上述基于智能页面解析的实时资讯爬虫装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于智能页面解析的实时资讯爬虫方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种基于智能页面解析的实时资讯爬虫方法,其特征在于,所述方法包括:
获取待爬页面列表;所述待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath;
根据所述实时资讯列表页面的URL和所述详情列表页面的XPath,得到详情页面的URL;
根据每个网站的XPath配置解析详情页面的URL,将所述详情页面的URL写入待爬取队列;
通过SQL查询组件将所述待爬取队列登陆到数据库的表中,利用爬虫流水线对所述详情页面的URL进行爬取,得到详情页面的HTML文档;
通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对详情页面的HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间,包括:
通过预先设置的自动页面解析算法对所述详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间;
将所述详情页面文章的正文标题、来源和发布时间输出到数据库的表中,同时计算详情页面文章的MD5并写入数据库中;
所述详情页面文章的正文标题、来源和发布时间和所述详情页面文章的MD5组成爬虫时刻页面快照;
根据预先设置的定时任务和所述爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表;
通过预先设置的自动页面解析算法对所述详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间,包括:
对所述详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分;其中,得分最高的标签为正文的包含标签;
根据所述正文的包含标签,得到详情页面文章的正文标题、来源和发布时间;
对所述详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分,包括:
将所述HTML文档转换为Dom文档树,计算所述Dom文档树中的所有包含标签的文字密度;
根据所述文字密度、标点符号数,对p标签的加权,对li标签和a标签的惩罚,得到每个包含标签的最终得分为。
2.根据权利要求1所述的方法,其特征在于,通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间,包括:
通过预先设置的自动页面解析算法对所述详情页面的HTML文档进行抽取,
若抽取失败,则通过调用无头浏览器对详情页面进行页面渲染,得到详情页面的HTML文档;
再利用预先设置的自动页面解析算法对所述HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间。
3.根据权利要求1所述的方法,其特征在于,根据所述正文的包含标签,得到详情页面文章的正文标题、来源和发布时间,包括:
计算所述正文的包含标签与HTML文档中的标签的标签特征相似度,得到第一得分;
根据基于分词交集/并集的jaccard度量计算HTML文档中的标签与metaTitle相似度,得到第二得分;
利用textrank算法对所述正文的包含标签中的正文内容进行关键字提取,计算所述关键字与HTML文档中的标签的内容的相似度,得到第三得分;
将所述第一得分、第二得分、第三得分以及非标题的惩罚分数进行相加,得到每个标签的综合得分;其中综合得分最高的标签的内容为所述详情页面文章的正文标题。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据预先设置的匹配规则,对HTML文档中的标签的内容进行匹配,匹配成功,则返回来源和发布时间。
5.根据权利要求1所述的方法,其特征在于,根据预先设置的定时任务对已爬取过的详情页面进行轮询,得到变更的文章列表,包括:
根据预先设置的定时任务对已爬取过的详情页面进行轮询,重新爬取,爬取得到的爬虫时刻页面快照与历史时刻的爬虫时刻页面快照逐一比对,得到变更的文章列表。
6.一种基于智能页面解析的实时资讯爬虫装置,其特征在于,所述装置包括:
获取详情页面的URL模块,用于获取待爬页面列表;所述待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath;根据待爬页面列表包括实时资讯列表页面的URL和详情列表页面的XPath,得到详情页面的URL;
爬取模块,用于根据每个网站的XPath配置解析详情页面的URL,将所述详情页面的URL写入待爬取队列;通过SQL查询组件将所述待爬取队列登陆到数据库的表中,利用爬虫流水线对所述详情页面的URL进行爬取,得到详情页面的HTML文档;
文档抽取模块,用于通过预先设置的自动页面解析算法,或通过调用无头浏览器进行页面渲染后对所述HTML文档进行抽取,得到详情页面文章的正文标题、来源和发布时间,包括:通过预先设置的自动页面解析算法对所述详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间;通过预先设置的自动页面解析算法对所述详情页面的HTML文档进行抽取,若抽取成功,得到详情页面文章的正文标题、来源和发布时间,包括:对所述详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分;其中,得分最高的标签为正文的包含标签;根据所述正文的包含标签,得到详情页面文章的正文标题、来源和发布时间;
对所述详情页面的HTML文档中的每个包含标签进行文字密度计算,得到每个包含标签的最终得分,包括:
将所述HTML文档转换为Dom文档树,计算所述Dom文档树中的所有包含标签的文字密度;根据所述文字密度、标点符号数,对p标签的加权,对li标签和a标签的惩罚,得到每个包含标签的最终得分为
获取爬虫时刻页面快照模块,用于将所述详情页面文章的正文标题、来源和发布时间输出到数据库的表中,同时计算详情页面文章的MD5并写入数据库中;所述详情页面文章的正文标题、来源和发布时间和所述详情页面文章的MD5组成爬虫时刻页面快照;
轮询模块,用于根据预先设置的定时任务和所述爬虫时刻页面快照对已爬取过的详情页面进行轮询,得到变更的文章列表。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111404747.XA CN113987320B (zh) | 2021-11-24 | 2021-11-24 | 基于智能页面解析的实时资讯爬虫方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111404747.XA CN113987320B (zh) | 2021-11-24 | 2021-11-24 | 基于智能页面解析的实时资讯爬虫方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113987320A CN113987320A (zh) | 2022-01-28 |
CN113987320B true CN113987320B (zh) | 2024-06-04 |
Family
ID=79750274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111404747.XA Active CN113987320B (zh) | 2021-11-24 | 2021-11-24 | 基于智能页面解析的实时资讯爬虫方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113987320B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401435B (zh) * | 2023-02-22 | 2023-11-10 | 北京麦克斯泰科技有限公司 | 一种日活跃栏目热度计算及调度方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942335A (zh) * | 2014-05-07 | 2014-07-23 | 武汉大学 | 一种针对网页结构变化的不间断爬虫***构建方法 |
CN105320740A (zh) * | 2015-09-22 | 2016-02-10 | 清华大学 | 微信文章以及公众号的获取方法及获取*** |
CN106096056A (zh) * | 2016-06-30 | 2016-11-09 | 西南石油大学 | 一种基于分布式的舆情数据实时采集方法和*** |
CN106294623A (zh) * | 2016-08-01 | 2017-01-04 | 北京金和网络股份有限公司 | 基于html标签的网页数据格式化方法 |
KR20170071389A (ko) * | 2015-12-15 | 2017-06-23 | 한양대학교 산학협력단 | 불특정 웹사이트의 새로운 게시글 분석 및 본문 추출을 통한 새 글 알림 시스템 및 방법 |
CN107885777A (zh) * | 2017-10-11 | 2018-04-06 | 北京智慧星光信息技术有限公司 | 一种基于协作式爬虫的抓取网页数据的控制方法及*** |
CN109271145A (zh) * | 2018-09-03 | 2019-01-25 | 科大国创软件股份有限公司 | 基于pythonQT及智能算法的快速规则定制方法 |
-
2021
- 2021-11-24 CN CN202111404747.XA patent/CN113987320B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942335A (zh) * | 2014-05-07 | 2014-07-23 | 武汉大学 | 一种针对网页结构变化的不间断爬虫***构建方法 |
CN105320740A (zh) * | 2015-09-22 | 2016-02-10 | 清华大学 | 微信文章以及公众号的获取方法及获取*** |
KR20170071389A (ko) * | 2015-12-15 | 2017-06-23 | 한양대학교 산학협력단 | 불특정 웹사이트의 새로운 게시글 분석 및 본문 추출을 통한 새 글 알림 시스템 및 방법 |
CN106096056A (zh) * | 2016-06-30 | 2016-11-09 | 西南石油大学 | 一种基于分布式的舆情数据实时采集方法和*** |
CN106294623A (zh) * | 2016-08-01 | 2017-01-04 | 北京金和网络股份有限公司 | 基于html标签的网页数据格式化方法 |
CN107885777A (zh) * | 2017-10-11 | 2018-04-06 | 北京智慧星光信息技术有限公司 | 一种基于协作式爬虫的抓取网页数据的控制方法及*** |
CN109271145A (zh) * | 2018-09-03 | 2019-01-25 | 科大国创软件股份有限公司 | 基于pythonQT及智能算法的快速规则定制方法 |
Non-Patent Citations (1)
Title |
---|
基于Web和Pro/E的零部件设计重用***研究;徐毅;陈旺;金博;屈福政;滕弘飞;;计算机集成制造***;20071215(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113987320A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8554800B2 (en) | System, methods and applications for structured document indexing | |
US8667004B2 (en) | Providing suggestions during formation of a search query | |
US8145617B1 (en) | Generation of document snippets based on queries and search results | |
US10380197B2 (en) | Network searching method and network searching system | |
US20190179956A1 (en) | Content moderation system | |
CN113822067A (zh) | 关键信息提取方法、装置、计算机设备及存储介质 | |
Kotenko et al. | Categorisation of web pages for protection against inappropriate content in the internet | |
WO2020000717A1 (zh) | 网页分类方法、装置及计算机可读存储介质 | |
Song et al. | A hybrid approach for content extraction with text density and visual importance of DOM nodes | |
US9514113B1 (en) | Methods for automatic footnote generation | |
US9280522B2 (en) | Highlighting of document elements | |
US20090259649A1 (en) | System and method for detecting templates of a website using hyperlink analysis | |
WO2022179128A1 (zh) | 基于爬虫的数据抓取方法、装置、计算机设备及存储介质 | |
Sivakumar | Effectual web content mining using noise removal from web pages | |
CN113987320B (zh) | 基于智能页面解析的实时资讯爬虫方法、装置及设备 | |
CN111475700A (zh) | 一种数据提取方法及相关设备 | |
CN114444487A (zh) | 一种数据处理方法、装置、设备及介质 | |
Yu et al. | Web content information extraction based on DOM tree and statistical information | |
CN113918794A (zh) | 企业网络舆情效益分析方法、***、电子设备及存储介质 | |
CN102257490A (zh) | 文档信息选择方法和计算机程序产品 | |
CN112667208A (zh) | 翻译错误识别方法、装置、计算机设备及可读存储介质 | |
CN113742785A (zh) | 一种网页分类方法、装置、电子设备及存储介质 | |
JP5494978B2 (ja) | 情報推定装置、情報推定方法、及びプログラム | |
CN108388614B (zh) | 新闻数据爬取处理方法、装置、计算机设备和存储介质 | |
CN109948015B (zh) | 一种元搜索列表结果抽取方法及*** |
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 |