QQ爬虫-爬取QQ空间


背景:

在一篇个人博客看到了相关的爬虫的知识,个人比较有兴趣,就花了点时间研究了一下,主要通过好友空间的互动(相互访问量,点赞,评论,以及其他互动),以及好友之间聊天的活跃度,日常点赞量,好友之间的关系网等因素综合判断,在空间爬取方面(前提是好友对自己打开了空间权限),在通过一层递归,爬取好友的空间的最近几十条动态分析(据说也可以很多层递归吧),先实现自动登录,得到cookie_dict.txt,然后呢运行python文件得到两个文件comment.txt和like.txt等文本文件,分别代表空间权重和好友关系权重,然后最后根据这两个文件得到第三个文件relationship.txt,这就是最终的文件,然后把这个文件放到本地搭建的服务器上,在浏览器上打开PHP文件(浏览器在搭建本地服务器解析的情况下,可以解析PHP文件,当然PHP的内容嵌套在HTML之中可以更加形象),当然不能满足于一个txt文件,毕竟看起来很不方便,不直观,所以这里利用了一个百度开源的echarts,下载相关支持文件echarts.js放在项目文件里面,具体将在接下来阐述。大体背景就是这样,小白一枚,肯定有许多地方理解不周,欢迎指正。



放一张结果图开始吧


(为了保护个人隐私,打码保护,大体轮廓就是这样)


可以看出主要分为三个部分,第一是高中以及初中同学,第二部分是大学同学,第三部分是其他。







先看一下整体吧

目录:

1.用selenium实现QQ账号密码登录

2.使用多线程爬取QQ

3.使用echarts将数据可视化‍


准备阶段首先要配置环境

在这里介绍的是Windows10环境之下的配置

  1. win10下配置python+selenium

    为了方便起见,这里引用一篇csdn上的文章

    原文链接:https://blog.csdn.net/efly2333/article/details/80346426



配置好基本环境以后就要真正开始了


1.使用selenium登录获取好友列表

将这个保存为cookie.py,运行起来就能看到自动打开浏览器,然后会在目录下生成cookie_dict.txt的文件啦,接下来的访问都带上这个cookie就可以保持登录状态了(将cookie.py的chromedriver的地址修改成自己的(设置了环境变量的可不设置),账号密码按照提示修改后运行,生成cookie)



2.爬取空间以及其他

  1. 主要代码


运行spider.py爬取数据并初步分析将结果生成txt文件保存至本地

运行过程截图


3.现在已经得到了好友列表,接下来该访问每个好友的空间,爬取说说的点赞和评论情况

得到了两个txt文件

大致是这样的:

微雨微澜$|$微雨微澜

在路上$|$在路上

呛呛呛$|$呛呛呛

呛呛呛$|$呛呛呛

阿尔伴卑斯(【我的眼里&只有你~】€)$|$阿尔伴卑斯(【我的眼里&只有你~】€)

具体文件在文末会给出来,这里仅仅是大致部分,


4.然后可就是数据处理部分了

分析数据

得到了第二步的两个文件:comment.txt和like.txt

每个文件每一行都是这种格式: A$|$B

而我们想要的好友关系网就是数据结构中的图,我们这里的图采用三元组的思想来存储,即 节点a,节点b,权值

所以我们根据已经得到的两个文件在生成个 relationship.txt

里面存储数据的格式: A$|$B$|$value,这里value就是两者的关系值‍


采用list类型存储:如[ [a, b, value1], [c, d, value2]...... ]

这个命名为relationship,先得到这个数据,最后将这个变量循环写入relationship.txt即可、

得到数据的思想如下:

从comment.txt或者like.txt文件中读一行数据,A $|$ B, 那么遍历relationship,如果A,B没有出现同一个子list中,那么新生成一个子list来记录两者的关系值,如果同时出现在同一个子list,那么改变子list中的关系值,如果是从comment中读的数据那么关系+3,如果是在like中读的文件,那么关系+1‍




5.运行show_relation下的analysis.py,得到好友关系值文件

将show_relation中的relation.php按照其中提示修改第三步得到的txt文件的路径,再将整文件夹放置本地搭建的web服务器下,并在

http://echarts.baidu.com/download.html

下载echarts插件,放在该文件夹下在浏览器上打开relation.php‍



6.然后在自己搭建的web服务器下用浏览器打开该php文件

搭建本地服务器运用xampp开启本地服务,然后把项目文件传到xampp的htdocs文件,在浏览器上输入:http://localhost:80\项目文件名字

即可得到文章一开始的图了。



转载于:https://juejin.im/post/5beba8c351882551236e787b

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值