基于Python的新闻聚合系统网络爬虫研究.pdf

所需积分/C币:47 2019-05-16 10:55:20 460KB PDF
收藏 收藏 1
举报

基于Python的新闻聚合系统网络爬虫
系统后端构架如图2所示每个实体 都有自己的功能来支持后端系统的操作, Rci数据- Socket 每个模块具体功能如下: 服务 API响应 (1) Caravel框架是一个PHP框架它 新闻內容 传递数据 可以用来托管应用程序的CMS为移动客 户端提供 API caravel框架主要将应用程 Python 置 caravel Caravel/+请求一 序数据存储在MySL数据库中还能够将 新闻爬虫 框架 REST API 响应 新闫网站 通知数据通过 Redis服务器发送到 Socket 服务器从而向用户发送通知 (2) Laravel rest aPi是 Caravel框架 通信 MySQL 的一个组件 REST API被用作移动客户端 数据库 与框架之间的接口 (3) Python新闻爬虫用于从各种来源 图2后端构架 检索web页面数据提取要分析的内容并将其存储到 MySQL数据库中。分析新闻文章时爬虫通过向N发 送一个HP请求来发送数据由分析的结果决定提取的消息将被存储到数据库中还是被丢弃 4)MysL数据库是用来存储和检索数据的数据库系统之所以使用MSL是因为该框架攴持本地 MySL数据库的ORM系统 Python新闻爬虫还可以直接与MysL系统通信而不需要使用 Caravel框架作为 中间件。 (5) Redis服务器是内存中的数据结构系统。在本研究中 Redis被用作 Caravel框架和套接字服务器之间 的消息代理。Redi还被 REST API用作缓存驱动程序以减少对 My SQL数据库的查询。 (6) Socket服务是Node.JS的一个实例用于为其客户端提供 WebSocket服务 rocket用于从 Larave框架 向连接的客户端广播数据其使用 Socket.1O来进行 Websocket实现 3.2开发方法 项目采用敏捷开发方法敏捷方法非常适合这个项目因为该方法鼓励将早期的软件交付给客户。在这 种情况下允许研究人员为主要客户端提供应用程序的早期测试主要客户端是移动应用程序和A新闻分析 器。我们还利用了测试驱动开发(T)允许开发人员编写包含模块功能需求的测试测试完成后将创建 ˆ个函数或模块来传递需求这确保了代码重构或合并不产生错误因为代码将在部署之前进行测试TD 用于本项目的AP开发。 3.3AP设计 在AP用例中有两个角色:普通用户和认证用户两者之间唯一的区别是认证用户拥有一个更为有效的 API令牌有一些AⅣ端点只针对认证用户开放。用户通过提供数据进行系统注册注册成功后登录系统系 统会根据用户所属的系统身份为其发放相应的访问令牌。所有用户登录系统后均可通过设置新闻类别等参 数来获取相应的新闻列表以及对应的具体内容和相关的评论回复信息认证用户可对获取的新闻进行评论 和回复。除此之外认证用户还可获取个人数据如新闻阅读历史、新闻喜好列表、新闻首选项和通知设置并 能够更新新闻偏好和通知设置等。 3.4爬虫设计 爬虫设计需要设置日志文件假如在Iinx环境下没有合适的日志文件当计划任务开始后命令行界面 可能会被爬虫程序的输出淹没。用户可以通过设置来启动爬虫例如如果用户想从新闻站点sina.com获取 数据可以设置sina作为程序参数启动爬虫。为了简化调度任务还可以设置爬虫扫描所有可用站点只要 每个站点的配置文件是有效可用的。 爬虫设计需设置四个标记:第一个标记是限制标记如果用户希望限制提取页面的数量则可以设置限制 标记;第二个标记是调试标记如果用户希望程序在错误发生时立即退出则可以设置调试标记这有助于用 31 (c)1994-2019ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net 户为站点构建配置文件;第三个标记是详细标记如果用户希望看到当前爬行操作进度则可以设置详细标 记;第四个标记是输出标记用户可以选择抓取结果的输出目标例如用户可以选择输岀到JON文件中还 是在数据库中再对数据进行进一步的处理。 为了增强爬虫的性能用户可以通过添加配置文件或输岀程序来解决。用户向爬行器添加额外的配置文 件以允许爬虫遍历不同的网站并对页面数据进行跟踪。为便于对获取到的不同类型的信息进行更为有效 的利用用户还可创建一个提供程序类将结果输出为除JSON以外的其他数据格式。 4系统测试 4.1测试服务器需求 本项目的服务器需求如表3所示。 表3服务器需求 操作系统 Ubuntu Debian or Windows 处理器 900MHz以上 RAM 至少1GB(推荐4CB或以上用于更好的缓存性能) PPPv5.6.4及以上 5.6及以上 Redis server v3.2.9及以上 其他软件 Node.J.10.3及以上 Pythe Task Scheduler( cron on Ubuntu , Task Scheduler on Windows) OpenSSL PhP PDO PHP PHP扩展 Mbstring php Toker PHP XML PII 4.2测试系统规范 由于经济性原因将后端应用程序运行在 Raspberry pi2上规范说明如表4所示。 表4 Raspberry Pi2规范 处理器 900 MHz ARM Cortex-A7 RAM 1 GB 存储 16 GB Micro sd card 网络 100-megahit L AN port 系统 Ubuntu mate 16. 04. 2 lts 4.3AP测试 在此使用 PHPUnit进行A测试测试用例是根据移动应用程序的要求编写的测试结果表明所有的 AP端点都通过了测试用例。整个测试花费了2.36分钟其中包括36个测试用例(包括错误测试)。为了加 快测试速度测试使用存储在内存中的SQLite数据库。每个测试都可能包括HTTP代码判定、JSON结构判定 或JSON输出判定。JON结构判定和JON输出判定之间的区别在于前者只判定JSON的整体结构(不包括 值)而后者则判定准确的值。 ·32 (c)1994-2019ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net 4.4爬虫测试 爬虫通过SH客户机测试系统。接口采用命令行接口(C)在Cl中执行的每个命令也可以由系统执 行爬虫的主要目的是定期从新闻网站获取新闻。 Crontab是类nx操作系统中的任务调度程序在此用于 启动预定的爬行会话。为了测试爬虫的实际功能使用以下命令直接将命令输入到CIl python3 crawler py -limit 10-verbose detik 以上命令包含2个可选参数和1个必选参数处理结果可根据目标网站的内容而有所不同。命令中将链 接总数的上限设置为10(此上限限定的数量不包括在限定时间范围内已经被爬行过的链接)。如果爬行链接 总数超过10链接提取器模块将会停止爬行。 5结语 本文研究的爬虫不仅仅局限于提取新闻站点的新闻通过用户设置自定义配置文件还可以提取其它多 种类型的网站数据并按照用户需求使用多种输岀方法来保存所提取的数据。然而爬虫在性能上还有提升 的空间基于爬虫本身是开源的开发者可在本文基础上对爬虫做进一步的更新和完善。 「参考文献] [1]范传辉. Python爬虫开发与项目实践[M].北京:机械工业出版社2017:72-81 [2]于娟.主题网络爬行硏究综述[计算机工程与科学2015(2):231-237 [3]黄日强黄勇明.网络爬虫的伉化策略探略[J].现代情报01(10):31-35 4]韦伟精通 Python网络爬虫[M]北京:机械工业出版社2017:128 [5]安子健基于 Scrap框架的网络爬虫实现与数据抓取分析[]长春:吉林大学2017 Research on the Python-based Web Crawler for News Aggregation System ZUO We gang Shanxi Managelnent Vocalional College, Linfen Shanxi 041051, Clina) Abstract: This paper develops a Python-based web crawler and reserves the API to construct a news aggregation system. The news data in the news aggregation system needs to be acquired by the web crawler, but different websites have different page layouts. This study aims to create an open source crawler able to extract data from different page layouts including the implementation of web crawler, API web crawler scheduler and Socket server. In the development process Python language is applied to develop the network crawler, Beau- tifulSoup is used as the web extraction tool of the web crawler, Laravel is adopted as the web application framework, PHP is used as the main hack -end language to support (MS and API. Web crawler can adapt tn different page layouts and extract data from them by using Lhe cunliguralion files created by users and export the extracted dala lo SoN file or database syslem ey words: web crawler; HTML extraction; CMS; application programming interface (c)1994-2019ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net

...展开详情
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐