第4章,系统实现和可视化,介绍展示平台的设计与实现;

微博爬虫设计

2。1微博爬虫概述

WeiboSpider 是使用Python 语言编写的,使用weibo。com 作为数据来源,能够模拟登录用户行为,使用户身份进行网络访问的网络爬虫。可以同时使用多个用户的身份进行微博爬取。

WeiboSpider 是一个分布式系统,在集中式调度器的控制下,可将爬虫部署在多个计算机中,使用多个IP进行爬取。文献综述

WeiboSpider支持SpiderWorker的健康状态检查,会自动回收失效SpiderWorker持有的微博账号,自动鉴别新上线的SpiderWorker并为其分配账号。

WeiboSpider 支持使用HTTP API 进行控制,可以添加删除关键字,控制关键字的激活状态,并可以查看关键字跟踪的最新时间和频率信息。

2。2微博爬虫基本组成和架构简介

2。2。1爬虫实例 

爬虫实例(SpiderWorker)是WeiboSpider 中负责数据抓取和解析的部分,本身并不和数据库进行交互。SpiderWorker在启动时会随机产生一个uuid[9],这个唯一id作为自身的标识。由于UUID 本身有128比特的长度,随机生成的id可以看作是唯一的,不会发冲突。

微博爬虫实例工作时效果如图 2。1所示

图 2。1 爬虫实例日志输出样例

2。2。2调度器

调度器(Scheduler)是WeiboSpider的核心组件,控制着所有爬虫实例的账号分配和任务分发,在一个WeiboSpider 实例中,Scheduler 有且只有一个。

调度器会从数据库中取得所有可用的微博账号,并记录他们在爬虫实例中的分配状况。

同时,调度器直接提供一个简单的HTTP API,供其它组件控制使用。调度器工作时输出如图 2。2所示

图 2。2调度器工作时的日志输出

2。2。3账号登陆模块

由于微博的登陆流程复杂,与服务器之间的交互动作繁多,选择直接操纵浏览器模拟用户的键盘鼠标行为是最稳定可靠的方案。在WeiboSpider中,使用前端测试框架Selenium调用Chrome Webdriver 进行浏览器的操作。登陆模块在可以在具有GUI的Windows或者Linux、OSX上运行。

2。2。4数据收集器来`自+优-尔^论:文,网www.youerw.com +QQ752018766-

数据收集器(DataCollector)是WeiboSpider 中专门负责存储微博数据的模块,由于LevelDB写入时进行Merge操作耗时不稳定,为了不影响爬虫的运行连续性,专门将微博数据存储功能拆分出来,提高了系统的性能和稳定性。

2。2。5跟踪和展示平台

为了方便用户控制爬虫工作,同时能够查看到最新的微博数据,完成将数据提交给用户的最后一步,本系统实现了一个基于Tornado和Vue。js的数据展示网站。当网络爬虫取得新的微博数据后,将根据用户的需要,使用WebSocket将数据发送给用户的浏览器,并实时显示最新的微博。

2。2。6RabbitMQ

本平台的各个组件除了少量使用HTTP API 互相通信外,几乎所有互相通信任务都是基于RabbitMQ 完成。RabbitMQ具体应用在会在后文介绍。

上一篇:图像的偏色检测及校正
下一篇:大数据智能系统的功能自动化测试用例生成方法研究

基于Apriori算法的电影推荐

PHP+IOS的会议管理系统的设计+ER图

数据挖掘在电子商务中的应用

数据挖掘的主题标绘数据获取技术与实现

基于PageRank算法的网络数据分析

基于神经网络的验证码识别算法

基于网络的通用试题库系...

ASP.net+sqlserver企业设备管理系统设计与开发

互联网教育”变革路径研究进展【7972字】

我国风险投资的发展现状问题及对策分析

安康汉江网讯

张洁小说《无字》中的女性意识

网络语言“XX体”研究

麦秸秆还田和沼液灌溉对...

老年2型糖尿病患者运动疗...

新課改下小學语文洧效阅...

LiMn1-xFexPO4正极材料合成及充放电性能研究