基于新浪微博的用户信息爬虫及分析毕业论文(编辑修改稿)内容摘要:
统的开放的信息订阅、分享与交流平台。 微博开放平台提供了海量的微博信息、粉丝关系、以及随时随地发生的信息裂变式传播渠道。 系统分成三个部分:数据爬虫,服务器端,客户端。 ( 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)。 每个入库函数都开启一个独立的线程。 当。基于新浪微博的用户信息爬虫及分析毕业论文(编辑修改稿)
相关推荐
................................ ( 14) 供应链管理的方法 ......................................... ( 14) ................................. ( 17) 3时间压缩对供应链管理的作用和意义 ............................. ( 18) .........
k~ = kd~ 对于 4型 我们选择 k~ = k ,对于 1型 Mh0 , kMhk 2 , Mk1 C L 的确定 L=M 对于 1型 L= 2 12 M 对于 2型 中北大学 2020 届课程设计说明书 第 3 页 共 15 页 L= M1 对于 3型 L= 2 12 M 对于 4型 根据 N与 M的关系 M=
得越快越不容易倒,因为车轴有 一股保持水平的力量。 图 21 根据这个原理,陀螺仪传感器应运而生。 陀螺仪传感器用多种方法读取轴所指的方向并自动将 数据信号传给控制系统。 组成 ( 1)陀螺转子(常采用同步电机、磁带电机、三相交流电机等拖动方法来使陀螺转子绕自转轴高速旋转,其转速近似于常值) ( 2)内外框架(或称内、外环,它是使陀螺自转轴获得所需角转动自由度的结构); (
HE 00 me pp ( ) 电流元和磁流元的对偶性 对于载有高频电流的电流元来说,它两端等量异号的电荷也随时间发生变化,因而相当于一个高频的电偶极子 [21]。 假设电流元由理想导体构成,其长度 l 远远小于工作波长,表面流过正方向向上的电流量值为 eI ,则其辐射场为: 基于时 域有限差分法的缝隙天线的分析与设计 5
的值在数码管上显示。 当延时结束后清除计时器和分频器开始下一次测量。 其原理如图。 6 图 3.数字频率计的硬件设计 见附录 1 模块分析 放大整形电路 放大整形电路由运算放到器 LM358与施密特触发器 74LS14等组成。 其中 LM358组成放大器,当输入信号很小时将其进行放大。 开关可以用来 选择是否放大。 施密特触发器,它对放大器的输出信号进行整形,使之成为矩形脉冲 [3]。 电路如图
Blue_x(1,j)= Blue_x(1,j)+1。 end end end PX1=1。 while ((Blue_x(1,PX1)3)amp。 amp。 (PX1x)) PX1=PX1+1。 end PX2=x。 while ((Blue_x(1,PX2)3)amp。 amp。 (PX2PX1)) PX2=PX21。 end 11 PX1=PX11。 %车牌区域 校正 PX2=PX2+1。