面向热点新闻的爬虫系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Experience Exchange
经验交流
DCW
261
数字通信世界
2019.01
1 引言
在这信息如此庞杂的时代要使热点新闻信息更易于查询,易于获取。用爬虫程序实现热点新闻高效、快速而便捷的获取与整合。通过建立网站的方式来展示获取的新闻信息。为了让用户定制个人信息获取偏好、保存历史记录等功能,而编写了用户模 块[1-2]。
2 热点新闻的爬虫系统设计原理与创新
网络爬虫是通过程序或脚本借助现有爬虫技术或工具编写的系统,该系统将有目的性的自动抓取互联网信息[3]。网络检索功能起于互联网内容爆炸性发展所带来的对内容检索的需求。搜素引擎不断发展,人们的需求也不断提高,网络信息搜索已经成为人们每天都有进行的内容。如何使搜索引擎能够时刻满足人们的需求?最初的检索功能通过索引站的方式实现,从而有了网络机器人[4]。本项目来源于新闻爬虫系统项目的建设,旨在为相关机构或个人提供及时的网络信息服务。2.1 设计原理(1)利用Python 语言结合该语言的相关库或技术如Requests/ urllib 等编写爬虫系统[5]。系统可以定期的对几个大型的新闻发布平台进行广度优先的爬取策略来增量获取新闻数据。
(2)采用Xpath/Re/BeautifulSoup 库对获取到的新闻数据进行关键字段提取。其中关键字段有新闻标题、编辑者、发布平台、发布时间等,之后再将这些关键字段与新闻图片、正文内容一并存储与本地,等待进一步操作。
(3)使用python 的pymysql 库对MySQL 数据库进行对接。(4)通过Flask web 框架构建网站,负责为用户需求而控制和调度相应的模块以及对MySQL 数据库中资源的调用与整合,为实现前端页面的对接实现不同使用场景下的多种数据请求接口:由用户通过URL 请求时,服务器端将直接返回相应的HTML 页面;若碰到特殊的需求需要使用异步传输时,将返回以JSON 格式封装的数据,在前端通过JavaScript 脚本语言对其进行相应处理。
(5)前端界面利用Python 的Jinja2模板引擎以及Bootstrap/AJAX/JQurey 等相关技术实现,兼顾用户交互方式的多样性以及
系统的跨浏览器兼容性。2.2 爬虫程序编写逻辑
本文中的基于网络爬虫的热点新闻发布系统可以简单的理解为,对新闻发布平台的众多的新闻页面格式化——根据需要提取该新闻页面中的关键信息。因此,为了让程序更加易读、更容易拓展,在爬虫设计之初先编写了一个Website 类,供后续爬虫程序拓展。
图1 Website 类图
在此类中根据系统需要,主要提取新闻页面的链接、新闻发布时间、新闻标题、新闻来源、新闻编辑、新闻内容、新闻类型。根据上述程序,针对相应的新闻发布平台编写相应的爬虫类实现Website 类中的抽象方法。其中,getLinks ()与fromRank ()方法用于在对应新闻发布平台遍历新闻页面。当后续程序需要批量爬取新闻页面时只需调用getParams ()方法即可。
3 热点新闻发布系统设计与实现
3.1 数据爬取
在本系统中,数据获取依赖于python 编写的网络爬虫,爬虫程序基于Requests 来发起对新闻发布平台的请求,获取返回的HTML 页面,之后通过Xpath (XML 路径语言)与python 内置的re (正则表达式)库编写定位HTML 上关键字段的爬取逻辑,将新闻的标题、来源、编辑者、存储路径、发布时间、新闻类别等字段存储进MySQL ,新闻内容与新闻图片存储到本地中。由此即可编写一个针对新闻信息的可扩展爬虫程序。
爬虫程序主要由链接过滤子模块、页面解析子模块、爬行控制子模块以及数据存储子模块构成,其模块结构如图2所示:3.1.1 链接过滤子模块
面向热点新闻的爬虫系统设计与实现
林文涛,陈伟强,刘杭燕,叶 楠
(福州理工学院工学院,福州 350506)
摘要:在现今随着互联网的发展,时刻流通的信息变得更加庞大而繁杂,获取信息,整合提取有实际效益的信息成为了一个难题。要想了解当今世界发生了什么,获取新闻这种记录社会、传播信息、反映时代的文体。显然是最佳的选择。本文提出了一个基于网络爬虫的热点新闻发布系统,并在此系统中设计了相应的爬虫逻辑用于爬取热点新闻,以及编写了资源存储,信息展示等相关功能。进行了有效的信息整合,极大的提高了获取信息的效率。
关键词:爬虫;新闻;python ;Flask doi :10.3969/J.ISSN.1672-7274.2019.01.211中图分类号:TP311.52 文献标示码:A 文章编码:1672-7274(2019)01-0261-03
Design and Implementation of Crawler System for Hot News
Lin Wentao,Chen Weiqiang,Liu Hangyan,Ye Nan
(The College of Engineering ,Fuzhou Institute of Technology ,Fuzhou ,350506)
Abstract :Nowadays ,with the development of the Internet ,the information circulating at all times has become more huge and complex.It has become a difficult problem to acquire information ,integrate and extract information with practical benefits.To understand what is happening in the world today ,get the news ,which records society ,spreads information and reflects The Times.Clearly the best option.In this paper ,a hot news release system based on network crawler is proposed ,and corresponding crawler logic is designed to crawl hot news ,and related functions such as resource storage and information display are written.Effective information integration has greatly improved the efficiency of information acquisition.
Keywords :Spider ;News ;Python ;Flask
作者简介:叶 楠,女,1990年生,福建寿宁人,讲师,研究方向电子与通信工程。基金项目:福建省福州理工学院大学生创新创业计划项目(项目编号:201713773017)。