美文网首页大数据python爬虫产品之道
爬虫分析新浪微博人际关系

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

作者: 狸小华 | 来源:发表于2017-04-14 10:24 被阅读809次
    概览图

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

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

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

    用户表

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

    关系表

    [id][uid][fid]

    存储记录的队列表

    [id][json]

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

    添加关系的 添加用户数据的

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

    瞎写了点流程

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

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

    这是关系表 这是数据表,我都懒得打码了,不要去骚扰他们哦

    反正结构是这么个结构,有节点,有连线就可以连了,然后就交给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协议。

    相关文章

      网友评论

        本文标题:爬虫分析新浪微博人际关系

        本文链接:https://www.haomeiwen.com/subject/clwbattx.html