爬虫分析新浪微博人际关系

爬虫分析新浪微博人际关系_第1张图片
概览图

    好久没玩过新浪微博,突然来心情想分析下,于是有了这个单线程且慢吞吞的小爬虫。看这图还是很震撼的,提供个我的在线预览版本 传送门 点击拖动,滚轮缩放,在无缩放的时候可以拖节点移动。

    本来是想着详细点说一下的,然后发现其实也不难,懒得讲了,无非分两步。1.获取数据。2.制作力导向图。

爬微博很特么烦,我又没那么多ip,只通过切换UA来爬取数据了。我需要的数据大致分为两类:用户数据,关系数据。我用了两张表来存储数据,一张表用来保存队列。

用户表

[id][uid][name][gender][avatar][lv]

关系表

[id][uid][fid]

存储记录的队列表

[id][json]

为了方便,我搞了两个事务:


爬虫分析新浪微博人际关系_第2张图片
添加关系的
爬虫分析新浪微博人际关系_第3张图片
添加用户数据的

整个爬虫采用队列存取task,首先入队自己的数据,然后从自己的数据开始爬。


爬虫分析新浪微博人际关系_第4张图片
瞎写了点流程

数据爬取完成后自己点击停止,然后等他把队列的的数据保存起来,下次直接恢复爬取。实际上,一般停止都是因为4xx错误了,会自动停止并保存的。这时候一般有4K数据了,你再爬的话,可能渲染不出了,网页会贼卡的。

停止爬虫后,看代码中的out两个类,输出两个js文件。js结构如下:别问为什么


爬虫分析新浪微博人际关系_第5张图片
这是关系表
爬虫分析新浪微博人际关系_第6张图片
这是数据表,我都懒得打码了,不要去骚扰他们哦

反正结构是这么个结构,有节点,有连线就可以连了,然后就交给d3.js了。网上的教程很多用的v3版本的,我这是用的v4版,svg性能毕竟捉急,虽然canvas也不咋地,但是好歹比svg强。

然后把两个文件拷到v4.html目录下,就行了。然后就打开html等啊等。

源码我放在github上,这里。代码不难,不想看只想装逼的参看这个流程:

在mainThread里面把初始数据改成你的,uid可以在微博手机网页版,点粉丝,然后看网址:http://m.weibo.cn/p/second?containerid=1005053268063401_-_FOLLOWERS 这个3268063401就是uid了。

然后运行main,点击开始,然后等他自己停了,或者你自己点个停止,等他保存完。然后打开out包下的两个类,运行以后输出到c盘,拷贝到v4.html下。

需要注意的是数据库我用的mysql,库为sina,表为trealition,tuser,tqueue。自建数据库然后添加我那两个事务。记得添加gson和mysql的jar包,拒绝小白问题。

ps:有需要初级android开发的么,6月才毕业呢,现在在做车联网设备的公司实习,技能加成:android串口编程,RFID的操作,驾培TCP协议。

你可能感兴趣的:(爬虫分析新浪微博人际关系)