基于新浪微博的用户信息爬虫及分析毕业论文(编辑修改稿)内容摘要:

统的开放的信息订阅、分享与交流平台。 微博开放平台提供了海量的微博信息、粉丝关系、以及随时随地发生的信息裂变式传播渠道。 系统分成三个部分:数据爬虫,服务器端,客户端。 ( 1)数据爬虫通过调用微博开放平台的接口,获取微博用户及其相应的信息,进行分析后存入数据库。 ( 2)服务器部分接收客户端的请求,从服务器数据库或新浪平台获 取数据后返回相应的数据给客户端。 ( 3)客户端用于数据的展示。 1)微博数据爬虫部分: 为了实现数据爬虫的功能,需要解决的问题是数据的获取,这就需要了解相关的基本的网络知识。 理解了数据传输的原理,并利用现有的开源函数库,就可以完成数据获取函数的编写。 其中,主要要处理的问题有: ( 1)实现 HTTP 请求报文的生成 ( 2)实现 HTTP 返回报文的接收和解压 ( 3)实现对解压后的 json 文件进行分析和信息提取,如果需要入库,存入入库队列。 2)微博数据爬虫基本需求: ( 1)数据信息初始化 : 读取数据库中已有的信息, 存入微博用户缓存队列。 为爬虫系统的运行做好准备。 ( 2)微博用户发现: 自动爬取获取新的微博用户信息,如果发现新的微博用户 ID,则将该用户信息存入。 ( 3)微博信息爬取: 6 从微博用户队列中获取微博用户 ID,然后进行微博爬取。 ( 4)微博用户信息更新模块: 对数据库中的微博用户信息中的微博数,关注数,粉丝数进行更新。 ( 5)关注列表信息更新: 定期的对关注列表的微博数,总评论数,总转发数等数据。 ( 6)微博用户信息入库。 将等待入库的数据容器里的数据存入数据库。 ( 7)微博信息入库。 将等待入库的数据容器里的 数据存入数据库。 ( 8)微博用户标签入库。 将等待入库的数据容器里的数据存入数据库。 ( 9)数据更新。 当数据库已存在的该数据是,对数据进行更新。 2)服务器部分: ( 1)命令接收及处理: 接收客户的请求,并从数据库和微博平台中获取信息并返回给客户端。 新增的关注微博用户的微博爬取: ( 2)当客户端新增了微博用户的关注时,进行数据爬取。 微博信息入库。 3)客户端部分: ( 1)登录模块: ( 2)新用户注册模块: ( 3)通过邮箱获取注册验证码进行注册。 ( 3)忘记密码模块: ( 4)向注册邮箱发送用户名和密码。 ( 5)用户关注的微博用户列表查询。 ( 6)获取关注列表的详细信息。 ( 7)查询数据库中的用户标签分类后产生的数据: ( 8)通过标签类别和拟合度两个参数向服务器请求信息。 ( 9)微博用户模糊联想搜索: ( 10)通过微博平台的联想搜索接口查询数据。 ( 11)发布微博并对列表框的微博账号进行 @。 7 系统总体功能设计 1)爬虫系统流程如图 21 所示: 图 21 爬虫系统流程图 8 2)接口调用处理流程如图 22 所示: 图 22 数据接口调用流程图 3)服 务器流程如图 33 所示: 图 23 服务器流程图 9 4)客户端流程图如图 24 所示: 图 24 客户端流程图 系统数据库构建 数据库设计 系统采用 oracle 11g 数据库。 数据库名称 weibo。 数据库 weibo 包含 5个表 : 1) USER_TABLE,用于存储注册用户信息; 2) WEIBO_USER_FOCUS_LIST,用于存储用户的微博用户关注列表; 3) WEIBO_USER_INFO,用于存储微博用户信息; 4) WEIBO_WEIBO_INFO 用于存储微博信息; 5) TABLEKEYS_INFO用于存储微博用户标签信息 . 数据库详细设计 1) WEIBO_WEIBO_INFO 表主键为 ID 字段, USERID 字段为外键,并为 ID 字段,USERID 字段建立索引。 表结构如图 25 所示 : 10 图 25 WEIBO_WEIBO_INFO 表结构图 2) WEIBO_USER_INFO 表主键为 ID 字段, ID 字段, SCREEN_NAME 字段建立索引。 表结构如图 26 所示 : 图 26WEIBO_USER_INFO 表结构图 3) WEIBO_USER_FOCUS_LIST 表 ID 字段为外键,表 结构如图 27 所示 : 图 27 WEIBO_USER_FOCUS_LIST 表结构图 11 4) USER_TABLE 表结构如图 28 所示 : 图 28 USER_TABLE 表结构图 5) TABLEKEYS_INFO 表主键为 USERID 字段,表结构如图 29 所示: 图 29 TABLEKEYS_INFO 表结构图 12 3 系统详细设计与实现 详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是经过这个阶段的设计工作,应该得出对目标系统的精确描述,并使之后的编码阶段根据此说明可以实现系 统的大部分功能。 爬虫系统详细设计 HTTP 请求数据包 为了实现获取新浪微博平台的数据,必须向新浪微博服务器发送数据请求报文进行数据请求。 因此,我构造了一个 PostData 类,用于生成 包的字符串。 HTTP 报文格式: 一个 HTTP 请求报文由 状态 行( request line)、 首部行 ( header)、空行和请求数据 4个部分组成,请求报文的一般格式 如图 31所示: 图 31 HTTP 报文格式图 利用 HTTPWatch 抓取在浏览器中收取新浪微博数据时发送的 HTTP 数据包,HttpWatch 抓取的数据包内容如图 32所示: 13 图 32 HTTP 数据包 经过分析,可以知道请求方法为 POST ,请求的 url 地址为 AcceptEncoding 为 gzip, deflate。 请求数据为一个以 apiurl 开头的字符串。 Apiurl 之后请求数据由一下几个部分组成:接口 url,请求类型,请求参数,access_token 等组成。 HTTP 返回数据包 每向 发送一 个 HTTP 请求数据包后,都可以获得相应的数据包。 分析获取 HTTP 应答报文中的 ContenLength 参数可以获取数据长度。 知道了数据长度后用 zlib 库的函数对数据进行解压。 当然,数据并不是每一次都是正确,导致数据出错的原因有很多,但我们只要判断数据格式是否正确,当数据格式不正确或不完整时,将直接丢弃报文,打印数据格式错误信息。 数据分析与提取 将得到的 json 字符串,利用提取 json 数据的函数库对字符串进行处理和提取我们需要的字段内容。 AnaData 类 AnaData 类结构如图 33所示: 14 图 33AnaData 类结构图 这是爬虫系统的最主要的类,该类对发送请求报文,分析应答报文,数据分析和提取等各个功能函数进行了整合和封装。 在该类中,以 do 开头的方法为爬虫函数,用于调用 Start 函数获取数据,并将需要入库的数据转存到入库缓存容器中。 以 Start 开头的方法为数据获取和分析函数,用于设置参数从新浪服务器获取数据并调用 ana 函数分析数据。 以 ana 开头的方法为数据分析函数,用于从 start 获得的 m_data 数据流中提取数据 15 并存于 weiboMessageList 或 weiboUserList 容器中。 类中的各个方法和字段协调合作,完成数据爬取分析和存储。 以下是几个 do函数实现的功能介绍: doUserWeibo()对微博用户 ID 列表的微博进行爬取,获取微博信息并进行标签归类。 doRunning()微博用户 ID 发现,获取微博用户的详细信息。 doUserCounts()对微博用户信息的更新。 数据入库 入库函数包括了微博用户入库( StoreToUserDB) ,微博用户更新( UpdateUserDB) ,微博入库( storeWeiboToDB) ,微博用户标签入库( storeTableKey)。 每个入库函数都开启一个独立的线程。 当。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。