APP下载

基于网络爬虫的新闻网站自动生成系统的设计与实现

2019-08-23刘晖石倩

电子技术与软件工程 2019年13期
关键词:爬虫网页静态

文/刘晖 石倩

1 绪论

网络媒体随着网络技术的发展迅速壮大,这使得人们能够更快地获取新闻信息。网络媒体的新闻来源有来自于自己所采访的新闻,也有许多引用自其他的网站。如何快速准确地采集新闻,更新新闻网站成为网络媒体的一个重要问题。

2 研究进展

早期的新闻采集大多靠人工去搜索和整理,直到网络爬虫技术的出现才使得人工得以解放,大大提高了新闻的采集速度。为了更加快速准确地抓取网页,Cho[1]等人在爬虫中引入了网页抓取策略的概念。针对特定领域的新闻,王辛[2]等人基于站点分类的网页抓取策略,设计了即时新闻采集分析系统。虽然现在有了不少爬虫框架,陈欢[3]等人也利用Scrapy爬虫框架设计了有效的网络新闻爬虫。但由于网络中的网页中存在着大量的与新闻无关的噪声信息,如何去除噪声,快速有效地找到有效的新闻信息近年被广泛地研究。陈西安[4]提出了基于网页文本标签特征挖掘的网页正文提取方法来解决噪声问题。

快速新闻网站生成系统的重要组成部分,除了快速采集新闻,还有新闻页面模板。新闻页面模板可以为采集到的新闻内容自动生成新闻页面,这能大大加快新网网站内容更新速度。另一方面,可以借助新闻页面模板,将新闻网页转换成静态网页,这能大大提高用户访问页面的速度。王莉利[5]等人提出的将动静技术相结合的思路则能够既保留动态网站的交互性,又克服传统网站访问效率低、并发性差的问题。

3 系统分析和设计

3.1 系统功能模块划分

本文根据新闻网站采集和更新的相关功能需求,设计一个新闻网站自动生成系统,它包括“新闻采集管理”、“新闻管理”、“新闻模板管理”三部分。通过管理新闻网站网址及新闻内容的特殊标签,让爬虫根据预先设置的参数迅速地采集新闻信息,并利用网页模板自动生成新闻静态网页,从而达到新闻网站自动快速更新的效果。整个系统的功能模块如图1所示。

3.2 新闻采集管理

“新闻采集管理”是对预备采集新闻的网站网址进行管理以及进行新闻搜索。为了更快速准确地去采集新闻信息,系统不会对网络中的所有网站进行新闻信息爬取,而是有针对性地选择主流的新闻网站作为新闻采集对象,建立新闻采集网址库。

在爬虫自动抽取网站新闻信息时,主要抽取的信息包括新闻标题、新闻来源、新闻日期、新闻内容等。通常同一个网站内的新闻网页都具有相同的格式,这些信息都由特定的HTML起止标签容纳。所以可以通过预先设置需要采集项目的HTML起止标签让爬虫自动地对网页进行分析,抓取其中有用的新闻信息。在设置HTML起止标签时,需要考虑如下问题:

(1)有些标签是单标签,此时需要扩大起止标签的范围,避免选择单标签;

(2)在抓取新闻信息的过程中,需要注意网站页面设置的编码是UTF-8还是GB2312,这对于爬虫分析网页是十分重要的。

设置好所有预备采集的新闻网站的采集参数后,就可以通过“搜索新闻”功能自动地运行爬虫程序去抓取新闻内容,并将相关内容保存到本地服务器的数据库中。由于爬虫搜索网页并存储到本地服务器的过程通常会比较耗时,所以通常在新闻网站访问量较少的夜间自动进行。

为提高搜索新闻的速度,我们提出了一种批处理的方式进行搜索。批处理的搜索是利用多线程来实现的,以队列的方式建立线程池,通过多线程来提高搜索的效率。因为网速等客观原因,在搜索和分析新闻网站时需要的响应时间不同,系统会自动根据网路传输速度调节分析新闻网页的延时。

3.3 新闻管理

“新闻管理”是对采集到的新闻进行管理,它包括预览、编辑、确认等操作。虽然在新闻采集阶段,通过参数设置可以基本保证采集到的新闻信息具有较高的准确度,但也不可完全避免采集到的信息出错的情况。所以,新闻编辑人员可以通过提供的预览功能对采集到的新闻信息进行预览和审核。当发现有些采集到的新闻信息中有部分内容不准确时,新闻编辑人员可以通过“编辑新闻”对其进行编辑加工。更多的出错情况通常是因为有部分新闻网页信息没有遵循网站共同的格式而导致采集到的信息出错,此时采集到的整条新闻内容信息都可能异常。不论何种情况,新闻编辑人员都可以通过“确认新闻”的功能来确定这条新闻是否可刊登。只有那些被标记为“允许刊登”的新闻信息条目才会自动生成静态新闻网页,并在网站上正式发布。

图1:系统功能模块图

对于确认过的新闻,系统每天定时在夜间维护时创建一个当天的新闻数据表,并将当天所有确认的新闻复制到此表中,这样每天生成新闻网页时可从这个数据表读取要刊登的新闻。当数据量比较大时,这样可以提高数据库的访问效率。当采集的新闻数据非常大时,我们也可以借助基于Hadoop框架的大数据存储系统来管理新闻数据。

3.4 新闻模板管理

“新闻模板管理”包括新闻模板的展示,以及静态新闻网页的生成。新闻网页的内容虽然不同,但页面的样式、风格可以统一。所以我们事先设计好很多不同风格样式的网页模板供新闻编辑人员进行选择。新闻编辑人员可以通过“新闻模板显示”查看已有的网页模板并进行选择。选择好合适的网页模板后,通过“静态网页生成”功能可将编辑人员确认允许刊登的新闻数据转化转化成静态网页格式。为了节省时间,系统默认从当天确认刊登的新闻数据表中逐条读取新闻数据,然后将新闻标题、新闻来源、新闻日期、新闻内容等字段的内容放置在新闻模板中对应标签中。所有生成的静态网页保存在以对应日期命名的文件夹内。静态网页使得用户访问时大大减少由于读写数据库而造成的效率低下问题。

4 系统测试与结论

通过对多个网站的教育板块进行新闻信息抓取,我们发现所设计的系统能够快速准确地实现自动采集新闻、自动生成新闻网站的功能。但是,由于采集信息是根据新闻网页中的特殊HTML标签进行采集的,如果采集来源网页样式发生改变,则会抽取不出新闻内容,此时需要重新标注采集来源网址中的特殊HTML标签。此外,对于新闻内容的合法性,目前主要通过人工校验,今后可以考虑借助文本的语义分析等手段进行自动处理。

猜你喜欢

爬虫网页静态
利用网络爬虫技术验证房地产灰犀牛之说
静态随机存储器在轨自检算法
基于Python的网络爬虫和反爬虫技术研究
基于CSS的网页导航栏的设计
利用爬虫技术的Geo-Gnutel la VANET流量采集
基于URL和网页类型的网页信息采集研究
大数据环境下基于python的网络爬虫技术
网页制作在英语教学中的应用
机床静态及动态分析
具7μA静态电流的2A、70V SEPIC/升压型DC/DC转换器