本发明涉及通信技术领域,尤其涉及一种电子报抓取方法和装置。
背景技术:
随着通讯技术的迅猛发展,数字期刊、杂志等已逐渐取代传统的纸质报纸和杂志。发布在网络上的电子化的报纸通常称为电子报。
目前针对网站的抓取技术已经非常成熟,各种各样的网站抓取工具以及爬虫,都可以很好的对网站的内容进行抓取。但是由于电子报通常具有报纸-叠-版面-新闻的结构形式,普通的网站抓取方法可以将电子报网站上的新闻内容抓取下来,可是对于该新闻属于哪个版面、那个叠以及该电子报的结构等信息,则无法抓取或者没有进行组织。因此,现有的抓取技术无法针对电子报的特性进行有效、完整的信息抓取,使得对电子报相关的数据分析受到很大的局限性。
技术实现要素:
本发明提供一种电子报抓取方法和装置,用于解决现有技术无法对电子报信息进行有效、完整的抓取,使得对电子报数据的分析、展示和再利用受到局限的问题。
本发明的第一个方面是提供一种电子报抓取方法,包括:
接收抓取请求,所述抓取请求中包括待抓取电子报的标识;
获取与所述电子报的标识对应电子报总览页的源码;
从所述电子报总览页的源码中抓取所述电子报的叠信息及版面列表;
从所述版面列表中各个版面的源码中抓取各个版面的信息,所述版面的信息包括版面的图及版面中的新闻稿件;
从所述新闻稿件的源码中抓取所述新闻稿件的信息;
将所述电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的 信息进行整合并输出。
本发明的另一个方面是提供一种电子报抓取装置,包括:
接收模块,用于接收抓取请求,所述抓取请求中包括待抓取电子报的标识;
处理模块,用于获取与所述电子报的标识对应电子报总览页的源码;
抓取模块,用于从所述电子报总览页的源码中抓取所述电子报的叠信息及版面列表;
所述抓取模块,还用于从所述版面列表中各个版面的源码中抓取各个版面的信息,所述版面的信息包括版面的图及版面中的新闻稿件;
所述抓取模块,还用于从所述新闻稿件的源码中抓取所述新闻稿件的信息;
输出模块,用于将所述电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出。
本发明提供的电子报抓取方法和装置,电子报抓取装置在收到抓取请求后,首先根据待抓取电子报的标识获取待抓取电子报的总览页源码,对总览页源码进行分析抓取电子报的叠信息及版面列表,再对版面列表中各个版面的源码进行分析抓取电子报的版面信息,再通过对版面中的新闻稿件的源码进行分析后抓取新闻稿件的信息,最后再对电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出。本电子报抓取方法可以有效的根据电子报的特性对电子报信息进行完整的抓取,方便了用户对电子报数据的分析和再利用,提高了对电子报分析的效率。
附图说明
图1为本发明提供的一种电子报抓取方法实施例一的流程示意图;
图2为某期北京青年报总览页示意图;
图3为本发明提供的一种电子报抓取方法实施例二的流程示意图;
图4为本发明提供的一种电子报抓取装置的结构示意图。
具体实施方式
图1为本发明提供的一种电子报抓取方法实施例一的流程示意图。如图 1所示,该方法包括:
S100,接收抓取请求,所述抓取请求中包括待抓取电子报的标识。
本方法实施例由本发明实施例提供的电子报抓取装置执行,电子报抓取装置可以集成在服务器中,也可以与服务器独立设置,由服务器在收到电子报抓取请求后,将电子报抓取请求转发给电子报抓取装置。本实施例对此不做限定。
本实施例中,抓取请求是由用户触发的,比如用户通过输入电子报的名称或者电子报的网址触发对该电子报的抓取请求。相应的,待抓取电子报的标识,可以为待抓取电子报的名称或待抓取电子报的网址等。
S101,获取与所述电子报的标识对应电子报总览页的源码。
具体的,若上述电子报的标识为电子报的名称,则上述S101包括:查询电子报名称与电子报总览页网址的映射关系表,确定所述电子报标识对应的电子报总览页的网址。例如,用户输入的电子报标识为“北京青年报”,则电子报抓取装置通过查询电子报名称与电子报总览页网址的映射关系表,确定“北京青年报”的总览页网址为http://bjyouth.ynet.com/,之后可对该页进行分析,从而获得该页的源码。其中,电子报总览页可以为电子报的首页,也可以为包括该电子报的叠及版面列表信息的任何一页,即若电子报的叠及版面列表信息仅在首页中显示,则总览页指电子报的首页,若电子报的任何一页中都有该报的叠及版面列表信息,则可以定义任何一页为该电子报的总览页。本发明各实施例中以电子报首页为总览页为例进行说明。
S102,从所述电子报总览页的源码中抓取所述电子报的叠信息及版面列表。
具体的,电子报抓取装置在获取电子报总览页的源码后,首先通过分析,确定该电子报包括几个叠,及每个叠中包括几个版面,如图2为某期北京青年报总览页示意图。下文为某期北京青年报的总览页的部分源码。
<!DOCTYPE HTML PUBLIC"-//W3C//DTD XHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>北京青年报电子版</title>
<meta http-equiv="Content-Type"content="text/html;charset=utf-8"/>
<meta name="robots"content="index,follow"/>
<meta name="googlebot"content="index,follow"/>
<meta name="keywords"content="北京青年报报,电子报,北京,新闻突发事件"/>
<meta name="description"content=""/>
<meta content=""name="author">
其中,电子报版面列表与电子报版面的网址相关联,电子报抓取装置可通过电子报的版面列表获中的各个版面标题打开该版面对应的网址,进而通过对该版面网页的分析获得该版面对应的源码。
进一步地,若上述S100中电子报的标识为待抓取电子报的网址,则上述S102包括:从所述电子报总览页的源码中抓取所述电子报的名称。
S103,从所述版面列表中各个版面的源码中抓取各个版面的信息,所述版面的信息包括版面的图及版面中的新闻稿件。
具体的,电子报抓取装置通过对版面源码进行分析,抓取到该版面的图及该版面中的新闻稿件。其中,该版面中的新闻稿件指该版面中新闻的标题或名称。
S104,从所述新闻稿件的源码中抓取所述新闻稿件的信息。
具体的,电子报抓取装置在对版面源码进行分析抓取该版面中的新闻稿件后,继续对该版面的源码进行分析,从中抓取该版面包括的新闻稿件的网址,并打开对应的新闻稿件的网址以获取新闻稿件的源码,进而获得该新闻稿件的信息,比如新闻稿件的图片、标题、时间、正文等等。
S105,将所述电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出。
电子报抓取装置在抓取到新闻稿件的信息后,即可对抓取的内容进行整合,将电子报中的新闻稿件以新闻稿件、该新闻稿件所属的版面、该版面所属的叠等信息的形式输出,使得用户不仅可以清楚的看到待抓取的电子报的各个新闻稿件的内容,还能清楚的确定该新闻稿件在该电子报中的“位置”,即该新闻稿件在电子报中的那一叠、那一版面,并且通过版面的图可以清晰的确定该新闻在该版面中的放置位置。
具体的,电子报抓取装置在显示整合后的电子报时,可以根据用户需要, 将电子报的结构形式、电子报的版面图和新闻图片及新闻稿件的内容依次单独显示,例如,首先显示电子报的叠、版面、新闻稿件的结构形式,然后再显示电子报中的各个新闻稿件的相关信息,以方便用户更直观的获得相关信息。
本实施例提供的电子报抓取方法,电子报抓取装置在收到抓取请求后,首先根据待抓取电子报的标识获取待抓取电子报的总览页源码,对总览页源码进行分析抓取电子报的叠信息及版面列表,再对版面列表中各个版面的源码进行分析抓取电子报的版面信息,再通过对版面中的新闻稿件的源码进行分析后抓取新闻稿件的信息,最后再对电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出。本电子报抓取方法可以有效的根据电子报的特性对电子报信息进行完整的抓取,方便了用户对电子报数据的分析和再利用,提高了对电子报分析的效率。
图3为本发明提供的电子报数据抓取方法实施例二的流程示意图。如图3所示,该电子报数据抓取方法包括:
S300,接收抓取请求,所述抓取请求中包括待抓取电子报的标识。
S301,获取与所述电子报的标识对应电子报总览页的源码。
S302,从所述电子报总览页的源码中抓取所述电子报的叠信息及版面列表。
上述S300~S302可参照上述S100~S101的详细描述,此处不再赘述。
S303,根据所述各个版面的源码中的热区源码,确定各个版面中新闻稿件的第一信息,所述第一信息包括所述各个版面中新闻稿件的第一数量。
具体的,版面的源码中包括热区源码。热区是指热区就是各个版面中进行了链接的一个个区域。即在一个版面里面表面上看上去是一张整体的图,但是实际上后台用切割的方式切割成一块一块的不同的链接区域,即不同的热区。从版面的热区源码中可以分析出该版面包括的新闻稿件的数量。
S304,根据所述各个版面网址源码中的页面链接源码,确定各个版面中新闻稿件的第二信息,所述第二信息包括各个版面中新闻稿件的第二数量。
版面的源码中也包括页面链接源码。根据版面的页面链接源码也可以分析出该版面中的新闻稿件的数量。
S305,比较所述第一数量与第二数量是否相同,若相同则执行S306,否 则执行S307。
S306,则根据所述各个版面的源码中的所述热区源码或页面链接源码确定所述各个版面中的新闻稿件的网址源码。
即上述S306即可以为根据所述各个版面源码中的页面链接源码,确定各个版面中新闻稿件的网址源码,也可以根据各个版面源码中的热区源码,确定各个版面中新闻稿件的网址源码。本实施例对此不做限定。
S307,根据所述各个版面的源码中的热区源码,确定各个版面中新闻稿件的第一网址源码。
S308,根据所述各个版面源码中的页面链接源码,确定各个版面中新闻稿件的第二网址源码。
S309,将第一网址源码和第二网址源码中包括的所有网址源码确定为所述各版面中新闻稿件的网址源码。
特别的,在对电子报版面的源码进行抓取时,还可以在上述S302后不执行上述S303-S306的过程,而直接执行S307-S308,并比较所述第一网址源码与第二网址源码是否匹配,若匹配则执行上述S306,否则执行S309。
电子报抓取装置再根据确定的新闻稿件的网址源码获取对应的新闻稿件页,从而获取新闻稿件的源码。
S310,从所述新闻稿件的源码中抓取所述新闻稿件的信息。
S311将所述电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出。
本实施例提供的电子报抓取方法,电子报抓取装置在收到抓取请求后,首先根据待抓取电子报的标识获取待抓取电子报的总览页源码,对总览页源码进行分析抓取电子报的叠信息及版面列表,再对版面列表中各个版面的源码中的热区源码和页面链接源码进行分析和对比,从而确定电子报的版面信息,再通过对版面中的新闻稿件的源码进行分析后抓取新闻稿件的信息,最后再对电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出,使得电子报的抓取更完整。本电子报抓取方法可以有效的根据电子报的特性对电子报信息进行完整的抓取,方便了用户对电子报数据的分析和再利用,提高了对电子报分析的效率。
图4为本发明提供的一种电子报抓取装置的结构示意图。如图4所示, 该跨版页面显示装置40包括:接收模块401,处理模块402,抓取模块403,输出模块404。
其中,接收模块401用于接收抓取请求,所述抓取请求中包括待抓取电子报的标识;处理模块402用于获取与所述电子报的标识对应电子报总览页的源码;抓取模块403用于从所述电子报总览页的源码中抓取所述电子报的叠信息及版面列表;所述抓取模块403还用于从所述版面列表中各个版面的源码中抓取各个版面的信息,所述版面的信息包括版面的图及版面中的新闻稿件;所述抓取模块403还用于从所述新闻稿件的源码中抓取所述新闻稿件的信息;输出模块404用于将所述电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出。
具体的,上述抓取模块403具体用于:
根据所述各个版面的源码中的热区源码,确定各个版面中新闻稿件的第一信息,所述第一信息包括所述各个版面中新闻稿件的第一数量;
根据所述各个版面网址源码中的页面链接源码,确定各个版面中新闻稿件的第二信息,所述第二信息包括各个版面中新闻稿件的第二数量;
比较所述第一数量与第二数量是否相同;
若相同,则根据所述各个版面的源码中的所述热区源码或页面链接源码确定所述各个版面中的新闻稿件的网址源码。
或者,上述抓取模块403具体用于:根据所述各个版面的源码中的热区源码,确定各个版面中新闻稿件的第一网址源码;
根据所述各个版面源码中的页面链接源码,确定各个版面中新闻稿件的第二网址源码;
比较所述第一网址源码与第二网址源码是否匹配;
若匹配,则确定所述各个版面中的新闻稿件的网址源码为所述第一网址源码或第二网址源码。
若不匹配,则将所述第一网址源码和第二网址源码中包括的所有网址源码确定为所述各版面中新闻稿件的网址源码。
进一步地,若上述待抓取电子报的标识为待抓取电子报的网址,则上述抓取模块403还用于:从所述电子报总览页的源码中抓取所述电子报的名称、叠信息及版面列表。
本实施例提供的电子报抓取装置中各模块的功能和处理流程可参照上述电子报抓取方法实施例一和实施例二的详细描述,此处不再赘述。
本实施例提供的电子报抓取装置装置,电子报抓取装置在收到抓取请求后,首先根据待抓取电子报的标识获取待抓取电子报的总览页源码,对总览页源码进行分析抓取电子报的叠信息及版面列表,再对版面列表中各个版面的源码中的热区源码和页面链接源码进行分析和对比,从而确定电子报的版面信息,再通过对版面中的新闻稿件的源码进行分析后抓取新闻稿件的信息,最后再对电子报的各个新闻稿件的信息、新闻稿件所属的版面信息及叠的信息进行整合并输出,使得电子报的抓取更完整,该电子报抓取装置可以有效的根据电子报的特性对电子报信息进行完整的抓取,方便了用户对电子报数据的分析和再利用,提高了对电子报分析的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。