CN103886078B - 一种通用的新闻评论采集方法及装置 - Google Patents

一种通用的新闻评论采集方法及装置 Download PDF

Info

Publication number
CN103886078B
CN103886078B CN201410114600.0A CN201410114600A CN103886078B CN 103886078 B CN103886078 B CN 103886078B CN 201410114600 A CN201410114600 A CN 201410114600A CN 103886078 B CN103886078 B CN 103886078B
Authority
CN
China
Prior art keywords
news
analysiss
comment
configuration information
acquisition
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
CN201410114600.0A
Other languages
English (en)
Other versions
CN103886078A (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.)
Yantai Zhong Ke Network Technical Institute
Original Assignee
Yantai Zhong Ke Network Technical Institute
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 Yantai Zhong Ke Network Technical Institute filed Critical Yantai Zhong Ke Network Technical Institute
Priority to CN201410114600.0A priority Critical patent/CN103886078B/zh
Publication of CN103886078A publication Critical patent/CN103886078A/zh
Application granted granted Critical
Publication of CN103886078B publication Critical patent/CN103886078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种通用的新闻评论采集方法及装置,包括以下步骤:获取用户输入的新闻链接地址及用户配置的采集配置文件;读取采集配置文件中的模板地址;根据新闻链接地址分析新闻链接地址对应的域名,从新闻评论链接采集配置文件中获取所述域名的新闻评论入口链接的模板地址,并获取新闻评论链接采集配置文件中的配置信息;逐条根据配置信息,在新闻页面或新闻链接地址中进行抽取,获得新的拼接参数,将获得的新拼接参数替换掉模板地址中原有的拼接参数;逐条获取新闻评论页面中的评论内容,直到所有新闻的评论内容全部采集完毕。本发明能够大幅提高新闻评论采集效率、实现新闻评论采集通用性,且具有准确性及稳定性。

Description

一种通用的新闻评论采集方法及装置
技术领域
本发明涉及一种新闻评论采集方法,特别涉及一种通用的新闻评论采集方法及装置。
背景技术
网页信息采集一直是互联网技术中的一项重要研究课题。近年来,随着AJAX技术的普及,国内主流网站已进入WEB2.0的成熟时期,传统的网络爬虫(WEB Crawler)已不能完成这种采用异步交互模式获取数据的页面的采集工作。
方案一:目前国内外已有很多学者进行了研究,主流的解决方案是采用内置浏览器模块来模拟用户动作操作网页元素进行网页数据的获取的。
方案二:《一种网络评论的采集方法及系统》申请公开的专利,所述方法包括:获取一网页入口链接地址;判断所述网页入口链接地址对应的网页上是否有N个网络评论,其中,所述N为正整数;在有所述N个网络评论时,判断所述N个网络评论中是否有M个网络评论满足采集的条件,其中,所述M为小于或等于N的正整数;在有所述M个网络评论满足采集的条件时,采集所述M个网络评论。
方案一,采用模拟浏览器行为的方式,必然会导致大量的时间浪费在AJAX代码解析上。首先,虽然大部分网站都是用的AJAX技术,但是其框架并没有统一的协议,这为通用的代码解析器的研究带来很大的困难。其次,网页发起的异步请求并不一定是获取用户需要的数据,相反的,大部分请求都是返回表现层的代码或数据,这些数据交互和信息会占用大量的解析时间。
方案二,《一种网络评论的采集方法及系统》申请公开的专利,仅有简单的一种入口链接地址的获取方式,并且,对于页面内容的获取也是比较简单,对于目前复杂的WEB2.0时代来说,没有实践性。一方面无法实现通用可配置的入口连接地址的获取,另一方面,针对目前HTML和JSON为主的网页内容,没有针对性的采集方案,对于新评论的判断方案的效率也低于本发明。
发明内容
本发明所要解决的技术问题是提供一种能够大幅提高新闻评论采集效率、实现新闻评论采集通用性,且具有准确性及稳定性的通用的新闻评论采集方法及装置。
本发明解决上述技术问题的技术方案如下:一种通用的新闻评论采集方法,包括以下步骤:
步骤1:获取用户输入的新闻链接地址及用户配置的采集配置文件,所述采集配置文件包括用于配置新闻评论入口链接的模板地址的新闻评论链接采集配置文件,和用于新闻评论内容采集的内容采集配置文件;
步骤2:读取采集配置文件中的模板地址,所述模板地址中包含若干拼接参数;
步骤3:根据获取的新闻链接地址,分析新闻链接地址对应的域名,从新闻评论链接采集配置文件中获取所述域名的新闻评论入口链接的模板地址,并获取新闻评论链接采集配置文件中用于抽取模板地址中新的拼接参数的配置信息;
步骤4:逐条根据获取的配置信息,在新闻页面或新闻链接地址中进行抽取,获得新的拼接参数,将获得的新拼接参数替换掉模板地址中原有的拼接参数,得到新闻评论入口链接地址;
步骤5:根据新闻评论入口链接地址、内容采集配置文件及新闻评论页面的页面类型解析新闻评论页面,结合抽取配置文件及开源工具逐条获取新闻评论页面中的评论内容,直到所有新闻的评论内容全部采集完毕。
本发明的有益效果是:本发明完全绕过AJAX技术带来的内容采集屏障,回归最简单的页面内容采集。因为上面的方法针对的实际上是新闻的采集,而新闻评论的采集有其特殊性,因此本发明目的是:
首先,采集中不再使用AJAX解析相关技术,最重要的目标是最大幅度提高采集效率,并且实现评论采集的通用性。
其次,实现采集数据的准确性,无论是评论的内容或是作者、时间等信息都能准确无误地捕获;采集功能的稳定性,在高效率采集的基础上,保证采集器稳定的工作。
最后,通过配置文件预先人工干预的方式实现国内重要新闻网站采集的全覆盖。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述配置信息中包含评论定位配置信息和字段抽取配置信息。
进一步,所述步骤5中当新闻评论页面为HTML格式时,新闻评论过程进一步包括以下步骤:
步骤3.11:使用开源的HTMLParser解析工具类,将新闻评论页面转化为Parser对象;
步骤3.12:根据配置信息中包含的评论定位配置信息,建立NodeFiler对象,将由新闻评论页面转化成的Parser对象进行过滤,得到仅包含所有评论内容的由一组Node对象构成的NodeList对象;
步骤3.13:遍历NodeList对象中的每个Node对象,根据字段抽取配置信息,抽取每条评论中的ID、作者、内容和发布时间信息;
步骤3.14:将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
进一步,所述步骤5中当新闻评论页面为JSON格式时,新闻评论过程进一步包括以下步骤:
步骤3.21:使用开源的JSON-LIB解析工具类,将新闻评论页面转化为JSON对象;
步骤3.22:根据配置信息中包含的评论定位配置信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
步骤3.23:遍历每条评论的JSON对象,根据字段抽取配置信息,定位获取每条评论中的ID、作者、内容和发布时间信息;
步骤3.24:将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
进一步,所述步骤3.22中,根据评论定位配置信息中包含的评论路径信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述步骤3.23中,根据字段抽取配置信息中的字段路径信息,定位获取每条评论中的ID、作者、内容和发布时间信息。
进一步,一种通用的新闻评论采集装置,包括获取模块,配置模块,分析抽取模块,抽取替换模块和采集模块;
所述获取模块,用于获取用户输入的新闻评论链接地址,配置采集配置文件;
所述配置模块,用于读取获取模块配置的采集配置文件,在采集配置文件中配置模板地址,所述模板地址中包含若干旧拼接参数;
所述分析抽取模块,用于根据获取模块获取的新闻链接地址,分析其对应的域名,获得采集配置文件中具有相应域名的新闻评论链接地址,并抽取其配置信息;
所述抽取替代模块,用于逐条根据分析抽取模块抽取的每条新闻评论链接地址的配置信息,在新闻页面或新闻链接地址中进行抽取,获得新拼接参数,将获得的新拼接参数替换掉配置模块配置的模板地址中的旧拼接参数,得到新闻评论入口链接地址;
所述采集模块,根据抽取替代模块得到的新闻评论入口链接地址,逐条获取新闻评论页面中的评论内容,直到所有新闻的评论内容全部采集完毕。
进一步,所述配置信息中包含评论定位配置信息和字段抽取配置信息。
进一步,所述采集模块中当新闻评论页面为HTML格式时,采集模块进一步包括Parser转化子模块,建立过滤子模块,遍历抽取子模块和第一比对查重模块:
所述Parser转化子模块,用于使用开源的HTMLParser解析工具类,将新闻评论页面转化为Parser对象;
所述建立过滤子模块,用于根据配置信息中包含的评论定位配置信息,建立NodeFiler对象,将由新闻评论页面转化成的Parser对象进行过滤,得到仅包含所有评论内容的由一组Node对象构成的NodeList对象;
所述遍历抽取子模块,用于遍历NodeList对象中的每个Node对象,根据字段抽取配置信息,抽取每条评论中的ID、作者、内容和发布时间信息;
所述第一比对查重模块,用于将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
进一步,所述采集模块中当新闻评论页面为JSON格式时,采集模块进一步包括JSON转化子模块,定位子模块,抽取定位子模块和第二比对查重子模块;
所述JSON转化子模块,用于使用开源的JSON-LIB解析工具类,将新闻评论页面转化为JSON对象;
所述定位子模块,用于根据配置信息中包含的评论定位配置信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述抽取定位子模块:遍历每条评论的JSON对象,根据字段抽取配置信息,定位获取每条评论中的ID、作者、内容和发布时间信息;
所述第二比对查重子模块,用于将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
进一步,所述定位子模块中,根据评论定位配置信息中包含的评论路径信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述抽取定位子模块中,根据字段抽取配置信息中的字段路径信息,定位获取每条评论中的ID、作者、内容和发布时间信息。
附图说明
图1为本发明方法步骤流程图;
图2为本发明装置结构图;
图3为本发明新闻评论链接采集流程图;
图4为本发明新闻评论内容采集流程图。
附图中,各标号所代表的部件列表如下:
1、获取模块,2、配置模块,3、分析抽取模块,4、抽取替换模块,5、采集模块,3.1-1、Parser转化子模块,3.1-2、建立过滤子模块,3.1-3、遍历抽取子模块,3.1-4、第一比对查重模块,3.2-1、JSON转化子模块,3.2-2、定位子模块,3.2-3、抽取定位子模块,3.2-4、第二比对查重子模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明方法步骤流程图;图2为本发明装置结构图;图3为本发明新闻评论链接采集流程图;
图4为本发明新闻评论内容采集流程图。
实施例1
一种通用的新闻评论采集方法,包括以下步骤:
步骤1:获取用户输入的新闻链接地址及用户配置的采集配置文件,所述采集配置文件包括用于配置新闻评论入口链接的模板地址的新闻评论链接采集配置文件,和用于新闻评论内容采集的内容采集配置文件;
步骤2:读取采集配置文件中的模板地址,所述模板地址中包含若干拼接参数;
步骤3:根据获取的新闻链接地址,分析新闻链接地址对应的域名,从新闻评论链接采集配置文件中获取所述域名的新闻评论入口链接的模板地址,并获取新闻评论链接采集配置文件中用于抽取模板地址中新的拼接参数的配置信息;
步骤4:逐条根据获取的配置信息,在新闻页面或新闻链接地址中进行抽取,获得新的拼接参数,将获得的新拼接参数替换掉模板地址中原有的拼接参数,得到新闻评论入口链接地址;
步骤5:根据新闻评论入口链接地址、内容采集配置文件及新闻评论页面的页面类型解析新闻评论页面,结合抽取配置文件及开源工具逐条获取新闻评论页面中的评论内容,直到所有新闻的评论内容全部采集完毕。
所述配置信息中包含评论定位配置信息和字段抽取配置信息。
进一步,所述步骤5中当新闻评论页面为HTML格式时,新闻评论过程进一步包括以下步骤:
步骤3.11:使用开源的HTMLParser解析工具类,将新闻评论页面转化为Parser对象;
步骤3.12:根据配置信息中包含的评论定位配置信息,建立NodeFiler对象,将由新闻评论页面转化成的Parser对象进行过滤,得到仅包含所有评论内容的由一组Node对象构成的NodeList对象;
步骤3.13:遍历NodeList对象中的每个Node对象,根据字段抽取配置信息,抽取每条评论中的ID、作者、内容和发布时间等信息;
步骤3.14:将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
所述步骤5中当新闻评论页面为JSON格式时,新闻评论过程进一步包括以下步骤:
步骤3.21:使用开源的JSON-LIB解析工具类,将新闻评论页面转化为JSON对象;
步骤3.22:根据配置信息中包含的评论定位配置信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
步骤3.23:遍历每条评论的JSON对象,根据字段抽取配置信息,定位获取每条评论中的ID、作者、内容和发布时间等信息;
步骤3.24:将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
所述步骤3.22中,根据评论定位配置信息中包含的评论路径信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述步骤3.23中,根据字段抽取配置信息中的字段路径信息,定位获取每条评论中的ID、作者、内容和发布时间等信息。
一种通用的新闻评论采集装置,包括获取模块1,配置模块2,分析抽取模块3,抽取替换模块4和采集模块5;
所述获取模块1,用于获取用户输入的新闻评论链接地址,配置采集配置文件;
所述配置模块2,用于读取获取模块1配置的采集配置文件,在采集配置文件中配置模板地址,所述模板地址中包含若干旧拼接参数;
所述分析抽取模块3,用于根据获取模块1获取的新闻链接地址,分析其对应的域名,获得采集配置文件中具有相应域名的新闻评论链接地址,并抽取其配置信息;
所述抽取替代模块4,用于逐条根据分析抽取模块3抽取的每条新闻评论链接地址的配置信息,在新闻页面或新闻链接地址中进行抽取,获得新拼接参数,将获得的新拼接参数替换掉配置模块2配置的模板地址中的旧拼接参数,得到新闻评论入口链接地址;
所述采集模块5,根据抽取替代模块4得到的新闻评论入口链接地址,逐条获取新闻评论页面中的评论内容,直到所有新闻的评论内容全部采集完毕。
所述配置信息中包含评论定位配置信息和字段抽取配置信息。
所述采集模块5中当新闻评论页面为HTML格式时,采集模块5进一步包括Parser转化子模块3.1-1,建立过滤子模块3.1-2,遍历抽取子模块3.1-3和第一比对查重模块3.1-4:
所述Parser转化子模块3.1-1,用于使用开源的HTMLParser解析工具类,将新闻评论页面转化为Parser对象;
所述建立过滤子模块3.1-2,用于根据配置信息中包含的评论定位配置信息,建立NodeFiler对象,将由新闻评论页面转化成的Parser对象进行过滤,得到仅包含所有评论内容的由一组Node对象构成的NodeList对象;
所述遍历抽取子模块3.1-3,用于遍历NodeList对象中的每个Node对象,根据字段抽取配置信息,抽取每条评论中的ID、作者、内容和发布时间等信息;
所述第一比对查重模块3.1-4,用于将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
所述采集模块5中当新闻评论页面为JSON格式时,采集模块5进一步包括JSON转化子模块3.2-1,定位子模块3.2-2,抽取定位子模块3.2-3和第二比对查重子模块3.2-4;
所述JSON转化子模块3.2-1,用于使用开源的JSON-LIB解析工具类,将新闻评论页面转化为JSON对象;
所述定位子模块3.2-2,用于根据配置信息中包含的评论定位配置信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述抽取定位子模块3.2-3:遍历每条评论的JSON对象,根据字段抽取配置信息,定位获取每条评论中的ID、作者、内容和发布时间等信息;
所述第二比对查重子模块3.2-4,用于将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
所述定位子模块3.2-2中,根据评论定位配置信息中包含的评论路径信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述抽取定位子模块3.2-3中,根据字段抽取配置信息中的字段路径信息,定位获取每条评论中的ID、作者、内容和发布时间等信息。
新闻评论采集从结构上分为两个部分:新闻评论链接采集和新闻评论内容采集。
本发明提供的是一个通过java封装的通过API访问的JAR工具包,大致分为两个子功能:新闻评论链接采集和新闻评论内容采集。用户开发的外部程序一般可通过先调用新闻评论链接采集接口,后调用新闻评论内容采集接口的步骤完成新闻评论采集。
本发明需要首先配置好新闻评论链接采集和新闻评论内容采集的采集配置文件(本发明已预先提供相应的采集配置文件,为XML格式),并将采集配置文件放在用户开发的外部程序的程序根目录。此外,新闻链接地址是需要作为输入由用户提供的。
整体流程为:用户开发的外部程序需要提供新闻链接地址(单条URL字符串)作为输入参数,调用新闻评论链接采集模块接口,得到新闻评论入口链接地址(单条URL字符串)作为中间结果,然后将这一结果连同新闻链接地址作为输入参数调用新闻评论内容采集模块接口,得到最终的输出结果,输出结果为该新闻的全部评论信息(评论信息包含评论内容、作者和发布时间)。一次调用是对一条新闻进行评论采集,如要采集多条新闻的评论,则需要调用多次(这种多次调用并不会对资源有过多消耗)。
新闻评论入口链接地址的获取方法是:在采集配置文件中配置一个模板地址,该模板地址包含若干拼接参数,拼接参数的值需要新闻评论链接采集模块根据采集配置文件中相应的规则进行抽取获得,将获得的值替换掉模板地址中对应的拼接参数,即可得到新闻评论入口链接地址。
示例输入-新闻链接地址:
采集配置文件-示例模板地址:
'[1]'和'[2]'为拼接参数,数字代表参数编号,即本模板有两个参数。
采集配置文件-示例拼接参数抽取配置:
expression标签的值为标准正则表达式,target标签表示抽取的目标(本例为URL,即新闻链接地址),matchup标签的值表示正则表达式捕获的参数与拼接参数的对应关系,如本例中正则表达式捕获的第一个值对应第一个拼接参数,正则表达式捕获的第二个值对应第二个拼接参数。将正则表达式应用于要抽取的目标捕获得到拼接参数[1]和拼接参数[2]的值,分别为:‘news’和‘123’,通过拼接参数的替换,最终得到的新闻评论入口链接地址即为:
新闻评论链接采集模块的详细流程为:
1.读取采集配置文件,初始化新闻评论链接采集模块。
2.根据输入的新闻链接地址,分析其对应的域名,然后获取采集配置文件中相应域名的新闻评论链接地址抽取配置信息。
3.逐条根据新闻评论链接地址抽取配置信息中的配置,选择到新闻页面或新闻链接地址或配置中指定的特定页面抽取模板地址所需的拼接参数值。拼接参数的抽取配置可能有多个,顺序使用这些抽取配置进行抽取,当所有拼接参数的值都获取成功时进入下一步。新闻链接地址,是指新闻的URL,新闻页面是指通过程序下载的新闻URL对应的超文本信息。
4.将抽取得到的拼接参数值替换模板地址中的相应拼接参数,得到新闻评论入口链接地址。
新闻评论内容采集在评论页面的网页解析流程中中共有两种解析方式:HTML方式和JSON方式。
HTML方式的页面解析是使用了开源的HTMLParser工具类,将整个评论页面转化为Parser对象。在新闻评论采集的抽取配置中设置了评论定位配置,根据这一配置,使用NodeFilter类可过滤掉不需要的的页面内容,过滤后的结果为仅保留了新闻评论页面内容的NodeList对象。在新闻评论采集的抽取配置中还设置了每条评论的评论字段抽取配置,评论字段包括评论的内容、ID(唯一标识符)、作者、发布时间等,通过遍历新闻评论页面内容的NodeList对象,根据字段抽取配置逐个抽取每条评论的内容、ID、作者、发布时间等信息,并根据ID进行查重处理,即可获得该评论页面的新闻评论信息。
JSON方式的页面解析是使用了开源的JSON-LIB工具类,将整个评论页面转化为JSON对象。JSON方式的页面解析同样在新闻评论采集的抽取配置中设置了JSON样式的评论定位配置(与HTML方式的格式不同,但发挥同样作用),该配置为一个或多个JSON路径信息,通过对路径的定位即可得到仅包含新闻评论内容的多个JSON对象。同样,在JSON方式的页面解析的抽取配置中还设置了每条评论的评论字段抽取配置,也为路径信息,这些路径对应了每条评论的内容、ID、作者、发布时间等,通过遍历仅包含新闻评论内容的多个JSON对象,根据路径信息即可获得每条评论的内容、ID、作者、发布时间等信息,并根据ID进行查重处理,即可获得该评论页面的新闻评论信息。
采集配置文件-网页解析类型:
HTMLParser表示采用HTML的页面解析方式,新闻评论内容采集模块会将下载读取到的评论页面内容转化为Parser对象。此处如果为JSON,则表示采用JSON的页面解析方式。
采集配置文件-评论定位配置:
简单说,本配置使用了两个子Filter,一个是HasAttributeFilter,其两个参数的值分别是‘class’和‘testDet’,另一个是TagNameFilter其参数值为‘DIV’,这两个Filter共同作为参数,组成了一个AndFilter。通过这个AndFilter可以把评论页面的Parser对象,过滤得到仅保留新闻评论页面内容的NodeList对象。
采集配置文件-字段抽取配置:
上面的字段抽取配置仅展示了评论ID和评论内容的字段抽取配置。简单说,在遍历NodeList中的所有Node对象时,若当前Node对象满足:1.是Tag类的实例;2.在满足1的前提下转化为Tag对象后,其name属性为‘p’;3.在满足1的前提下转化为Tag对象后,其名称为‘class’的attribute属性为‘t’。若以上三条都满足,则调用转化后的Tag对象的getAttribute(String)方法,并传入参数值‘id’,即可获得评论的ID值;同样,调用转化后的Tag对象的toPlainTextString()方法,即可获得评论的内容。
新闻评论内容采集详细流程为:
1.读取采集配置文件,初始化新闻评论链接采集模块。
2.根据输入的新闻链接地址和新闻评论入口链接地址,分析其对应的域名,然后获取采集配置文件中相应的新闻评论内容抽取配置。
3.设置当前采集页码为1。
4.进行当前新闻评论页面的下载读取,系统当前时间作为采集时间。
5.判断本次评论页面解析的解析类型,若为HTML方式则进入步骤6,若为JSON方式则进入步骤7。
6.HTML方式页面解析步骤:
i.使用开源的HTMLParser工具类,将页面数据转化为Parser对象。
ii.根据评论定位配置,建立NodeFiler对象,对评论页面转化为的Parser对象进行过滤,得到仅包含所有评论内容的NodeList对象。
iii.遍历NodeList对象中的每个Node对象,根据字段抽取配置,抽取得到每条评论的ID、作者、内容、发布时间等信息。
iv.将本次采集的所有评论ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复评论ID记录入已采集的ID列表。
7.JSON方式页面解析步骤:
i.使用开源的JSON-LIB工具类将网页数据转化为JSON对象。
ii.根据评论定位配置中的评论路径,从评论网页JSON对象中的定位得到所有评论内容的JSON对象。
iii.遍历每条评论的JSON对象,根据字段抽取配置中的字段路径信息,定位获取每条评论的ID、作者、内容、发布时间等信息。
iv.将本次采集的所有评论ID与已采集的ID列表进行比对查重,保留所有未重复的评论并将这些未重复评论ID记录入已采集的ID列表。
8.如果已采集完最后一页则进入步骤9,否则将当前采集页码加1进入步骤4。
9.将所有评论信息作为输出进行返回。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种通用的新闻评论采集方法,其特征在于,包括以下步骤:
步骤1:获取用户输入的新闻链接地址及用户配置的采集配置文件,所述采集配置文件包括用于配置新闻评论入口链接的模板地址的新闻评论链接采集配置文件,和用于新闻评论内容采集的内容采集配置文件;
步骤2:读取采集配置文件中的模板地址,所述模板地址中包含若干拼接参数;
步骤3:根据获取的新闻链接地址,分析新闻链接地址对应的域名,从新闻评论链接采集配置文件中获取所述域名的新闻评论入口链接的模板地址,并获取新闻评论链接采集配置文件中用于抽取模板地址中新的拼接参数的配置信息;
步骤4:逐条根据获取的配置信息,在新闻页面或新闻链接地址中进行抽取,获得新的拼接参数,将获得的新拼接参数替换掉模板地址中原有的拼接参数,得到新闻评论入口链接地址;
步骤5:根据新闻评论入口链接地址、内容采集配置文件及新闻评论页面的页面类型解析新闻评论页面,结合抽取配置文件及开源工具逐条获取新闻评论页面中的评论内容,直到所有新闻的评论内容全部采集完毕。
2.根据权利要求1所述的新闻评论采集方法,其特征在于:所述配置信息中包含评论定位配置信息和字段抽取配置信息。
3.根据权利要求2所述的新闻评论采集方法,其特征在于,所述步骤5中当新闻评论页面为HTML格式时,新闻评论采集过程进一步包括以下步骤:
步骤3.11:使用开源的HTMLParser解析工具类,将新闻评论页面转化为Parser对象;
步骤3.12:根据配置信息中包含的评论定位配置信息,建立NodeFiler对象,将由新闻评论页面转化成的Parser对象进行过滤,得到仅包含所有评论内容的由一组Node对象构成的NodeList对象;
步骤3.13:遍历NodeList对象中的每个Node对象,根据字段抽取配置信息,抽取每条评论中的ID、作者、内容和发布时间信息;
步骤3.14:将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
4.根据权利要求2所述的新闻评论采集方法,其特征在于,所述步骤5中当新闻评论页面为JSON格式时,新闻评论采集过程进一步包括以下步骤:
步骤3.21:使用开源的JSON-LIB解析工具类,将新闻评论页面转化为JSON对象;
步骤3.22:根据配置信息中包含的评论定位配置信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
步骤3.23:遍历每条评论的JSON对象,根据字段抽取配置信息,定位获取每条评论中的ID、作者、内容和发布时间信息;
步骤3.24:将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
5.根据权利要求4所述的新闻评论采集方法,其特征在于:
所述步骤3.22中,根据评论定位配置信息中包含的评论路径信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述步骤3.23中,根据字段抽取配置信息中的字段路径信息,定位获取每条评论中的ID、作者、内容和发布时间信息。
6.一种通用的新闻评论采集装置,其特征在于:包括获取模块(1),配置模块(2),分析抽取模块(3),抽取替代模块(4)和采集模块(5);
所述获取模块(1),用于获取用户输入的新闻评论链接地址,配置采集配置文件;
所述配置模块(2),用于读取获取模块(1)配置的采集配置文件,在采集配置文件中配置模板地址,所述模板地址中包含若干旧拼接参数;
所述分析抽取模块(3),用于根据获取模块(1)获取的新闻链接地址,分析其对应的域名,获得采集配置文件中具有相应域名的新闻评论链接地址,并抽取其配置信息;
所述抽取替代模块(4),用于逐条根据分析抽取模块(3)抽取的每条新闻评论链接地址的配置信息,在新闻页面或新闻链接地址中进行抽取,获得新拼接参数,将获得的新拼接参数替换掉配置模块(2)配置的模板地址中的旧拼接参数,得到新闻评论入口链接地址;
所述采集模块(5),根据抽取替代模块(4)得到的新闻评论入口链接地址,逐条获取新闻评论页面中的评论内容,直到所有新闻的评论内容全部采集完毕。
7.根据权利要求6所述的新闻评论采集装置,其特征在于:所述配置信息中包含评论定位配置信息和字段抽取配置信息。
8.根据权利要求7所述的新闻评论采集装置,其特征在于:所述采集模块(5)中当新闻评论页面为HTML格式时,采集模块(5)进一步包括Parser转化子模块(3.1-1),建立过滤子模块(3.1-2),遍历抽取子模块(3.1-3)和第一比对查重模块(3.1-4):
所述Parser转化子模块(3.1-1),用于使用开源的HTMLParser解析工具类,将新闻评论页面转化为Parser对象;
所述建立过滤子模块(3.1-2),用于根据配置信息中包含的评论定位配置信息,建立NodeFiler对象,将由新闻评论页面转化成的Parser对象进行过滤,得到仅包含所有评论内容的由一组Node对象构成的NodeList对象;
所述遍历抽取子模块(3.1-3),用于遍历NodeList对象中的每个Node对象,根据字段抽取配置信息,抽取每条评论中的ID、作者、内容和发布时间信息;
所述第一比对查重模块(3.1-4),用于将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
9.根据权利要求7所述的新闻评论采集装置,其特征在于,所述采集模块(5)中当新闻评论页面为JSON格式时,采集模块(5)进一步包括JSON转化子模块(3.2-1),定位子模块(3.2-2),抽取定位子模块(3.2-3)和第二比对查重子模块(3.2-4);
所述JSON转化子模块(3.2-1),用于使用开源的JSON-LIB解析工具类,将新闻评论页面转化为JSON对象;
所述定位子模块(3.2-2),用于根据配置信息中包含的评论定位配置信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述抽取定位子模块(3.2-3):遍历每条评论的JSON对象,根据字段抽取配置信息,定位获取每条评论中的ID、作者、内容和发布时间信息;
所述第二比对查重子模块(3.2-4),用于将本次采集的所有评论的ID与已采集的ID列表进行比对查重,保留所有未重复的评论,并将这些未重复的ID存入ID列表。
10.根据权利要求9所述的新闻评论采集装置,其特征在于:
所述定位子模块(3.2-2)中,根据评论定位配置信息中包含的评论路径信息,从JSON对象中定位得到仅包含评论内容的多个JSON对象;
所述抽取定位子模块(3.2-3)中,根据字段抽取配置信息中的字段路径信息,定位获取每条评论中的ID、作者、内容和发布时间信息。
CN201410114600.0A 2014-03-25 2014-03-25 一种通用的新闻评论采集方法及装置 Active CN103886078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410114600.0A CN103886078B (zh) 2014-03-25 2014-03-25 一种通用的新闻评论采集方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410114600.0A CN103886078B (zh) 2014-03-25 2014-03-25 一种通用的新闻评论采集方法及装置

Publications (2)

Publication Number Publication Date
CN103886078A CN103886078A (zh) 2014-06-25
CN103886078B true CN103886078B (zh) 2017-05-10

Family

ID=50954970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410114600.0A Active CN103886078B (zh) 2014-03-25 2014-03-25 一种通用的新闻评论采集方法及装置

Country Status (1)

Country Link
CN (1) CN103886078B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317948A (zh) * 2014-11-05 2015-01-28 北京中科辅龙信息技术有限公司 页面数据抓取方法和系统
CN108933968B (zh) * 2018-07-03 2022-02-08 武汉斗鱼网络科技有限公司 一种消息格式的转换方法、装置、存储介质及安卓终端
CN110119423A (zh) * 2019-05-17 2019-08-13 厦门商集网络科技有限责任公司 一种可配置化的数据解析方法和计算机可读存储介质
CN113626674A (zh) * 2021-08-03 2021-11-09 杭州隆埠科技有限公司 新闻采集系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702167A (zh) * 2009-11-03 2010-05-05 上海第二工业大学 一种基于互联网的模板抽取属性和评论词的方法
CN103488675A (zh) * 2013-07-11 2014-01-01 哈尔滨工程大学 一种多网页新闻评论内容自动精确提取装置
CN103593426A (zh) * 2013-11-07 2014-02-19 北京奇虎科技有限公司 一种商品搜索及提供方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702167A (zh) * 2009-11-03 2010-05-05 上海第二工业大学 一种基于互联网的模板抽取属性和评论词的方法
CN103488675A (zh) * 2013-07-11 2014-01-01 哈尔滨工程大学 一种多网页新闻评论内容自动精确提取装置
CN103593426A (zh) * 2013-11-07 2014-02-19 北京奇虎科技有限公司 一种商品搜索及提供方法及装置

Also Published As

Publication number Publication date
CN103886078A (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
CN103886078B (zh) 一种通用的新闻评论采集方法及装置
CN102184184B (zh) 一种网页动态信息获取方法
US7908594B2 (en) External programmatic interface for IOS CLI compliant routers
CN103902653B (zh) 一种构建数据仓库表血缘关系图的方法和装置
CN101908071B (zh) 一种提高搜索引擎搜索效率的方法及其系统
CN103631828B (zh) 确定访问路径的方法和装置、确定页面流失率的方法和系统
CN105005600B (zh) 一种访问日志中url的预处理方法
CN106897215A (zh) 一种基于WebView网页加载性能及用户行为流数据采集的方法
CN106096056A (zh) 一种基于分布式的舆情数据实时采集方法和系统
CN103605738A (zh) 网页访问数据统计方法及装置
CN108196880A (zh) 软件项目知识图谱自动构造方法与系统
CN101370024A (zh) 信息的分布式采集方法及系统
CN103970845A (zh) 基于程序切片技术的网页过滤方法
CN103902269B (zh) 一种通过xml文件生成mib文件的系统及方法
CN105718559B (zh) 查找表单页面和目标页面转化关系的方法和装置
CN102346747A (zh) 在数据模型中查找参数的方法
CN109033282A (zh) 一种基于抽取模板的网页正文抽取方法及装置
CN108959539B (zh) 一种基于规则可配置的网页数据解析方法
CN107092670A (zh) 一种基于内嵌浏览器的可视化网络爬虫系统及分析方法
CN102902547A (zh) 一种命令行接口的命令构造与解析方法
CN103136358A (zh) 一种自动抽取论坛数据的方法
CN103440328B (zh) 一种基于鼠标行为的用户分类方法
CN106294885A (zh) 一种面向异构网页的数据收集与标注方法
CN106650610A (zh) 一种人脸表情数据收集方法及装置
CN102663083A (zh) 基于分布式计算的大规模社交网络信息抽取方法

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