这是之前做的一个小项目。这几天刚好整理了一些相关资料,顺便就在这里做一个梳理啦~
简单来说这个项目实现了,登录人人网并爬取用户数据。并对用户数据进行分析挖掘,终于效果例如以下:1、存储人人网用户数据(户主的全部好友、户主好友的全部好友、户主及好友关注的公共主页)。2、信息可视化,绘制户主好友间的关系网络图;3、数据挖掘,通过分析户主好友关注的公共主页,向户主推荐公共主页。
项目分为三个部分,各自是人人网登录及用户数据爬取与存储、用户关系可视化、公共主页推荐。以下分别介绍这三个部分。
第一部分实现了人人网登录及用户数据爬取与存储。
因为之前做过一些用python写网络爬虫的事,所以開始阶段进展顺利。
但随后就在登录阶段的重定向问题上遇到了非常大的障碍。起初用python的第三方库urllib和urllib2的组合。參考了网上一些方案解决重定向问题,但总是失败。就在快要放弃的时候。偶然发现强大的python已经有一个解决重定向问题的第三方库httplib2了。于是愉快地用起了urllib和httplib2的组合。果然非常快解决这个问题。
成功实现人人网登录后,后面的数据爬取和存储问题就不再话下啦。
第二部分实现了用户关系可视化。
简单来说。就是用python画了一张人人网好友关系网络拓扑图。
这里用到了python的第三方库networkx。
第三部分实现了公共主页推荐。因为第一部分已经爬取了用户关系和全部好友圈用户关注的公共主页信息,所以这里非常方便地就能实现一些推荐算法。这里我用了最简单的KNN算法。
最后贴上一张我的人人网好友关系拓扑图吧。非常明显的高中和大学两个圈子是不是呢。这里就不贴代码了。假设有兴趣看看详细的代码实现的话,请戳这里好啦。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTMyNDY3Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="500" height="300" alt="">