Pythoner集中营机器学习与数据挖掘程序员

获取社交网络数据的方式汇总|网络挖掘必备技能

2018-08-15  本文已影响15人  DC学院

网络型数据挖掘是一项主流的、重要的数据挖掘技术,常见的如社交网络、购物网络、金融网络等网络类型在生活中无处不在,做好网络挖掘可在用户画像、产品推荐、流言信息传播、金融风险评估、城市交通优化方面产生极大作用。

获取的数据“好坏”很大程度决定了数据分析/数据挖掘研究的效果,尤其是社交网络数据,收藏一些好的数据集尤为重要,不一定多但一定要优质。


一、开放数据集

主要推荐: snap网站

http://snap.stanford/edu/data/index.html

*斯坦福教授创立的网络分析实验室建立的网站,其公布了研究过程中非常多的数据集。


其中推荐:social networks里面的soc-Pokec 数据集。

它是一个全量的捷克斯洛伐克的一个社交网站数据集,

不仅包含了社交网站中点和边的数据;

同时包含了user profiledata(即每个用户具备的属性),如性别、注册时间、年龄、工作领域、婚姻/孩子状态……,其丰富程度几乎是公开数据集中能够下载到的最好之一了,如果你要做跟用户属性相关的分析研究或算法实验,这是个很好的选择;

与此同时,它还包含了整个网站上所有用户的关系,如果凭自己抓取,那只是网站上的部分采样,而这个稳定的全量数据则代表了整个网络的特征,对我们的分析解释和逻辑思维的严谨性是有好处的。


另一个推荐的是:location-based online social networks,其中有两个叫loc-Gowalla、loc-Brightkite 数据集。


这类的社交网站主要是由人的checking-in(签到)组成,虽然这类网站已经没落了,但是保留下来的数据依然能够帮助我们分析用户线上和线下的行为联系,数据集中除了点和边的数据,还有用户的好友关系、地理空间等数据。

其他开放数据集站点:UCI、CAWDAD(它们不只有社交网络数据集)

当然,竞赛网站中公开的数据集也可以时不时去关注下载。

二、网站爬虫

1.基于网站API的爬虫

2.基于网页的爬取

实例:豆瓣爬取好友信息


Step1:找到代表好友关系的网址(要爬取的信息所在网址)
https://www.douban.com/people/doubanlocation/rev_contacts

Step2:找到目标用户的id,比如上图中目标用户“关注豆瓣同城的人”在网址中的ID为“doubanlocation”,由此,切换网址中“people/”之后的ID就可以抓取不同人的好友。

Step3:使用beautifulsoup来抓取数据的具体操作
1)载入需要的包

2)利用cookie模拟登陆,并抓取网页信息

步骤:浏览器工具栏——更多工具——开发者工具——network——刷新用户信息(contacts)网页——headers——requestheaders——cookie复制


3)抓取用户id信息

以上,就完成了用户id信息的抓取任务。

当然,这也只是社交网络挖掘的第一步,当数据获取到足够丰富的时候,就可以进一步探究社交网络挖掘的算法,如好友推荐、属性推理、组群挖掘、消息传播等等。有兴趣的朋友可以关注我们的公众号(datacastle2016),获取更多数据分析干货。

上一篇 下一篇

猜你喜欢

热点阅读