背景:

在一篇个人博客看到了相关的爬虫的知识,个人比较有兴趣,就花了点时间研究了一下,主要通过好友空间的互动(相互访问量,点赞,评论,以及其他互动),以及好友之间聊天的活跃度,日常点赞量,好友之间的关系网等因素综合判断,在空间爬取方面(前提是好友对自己打开了空间权限),在通过一层递归,爬取好友的空间的最近几十条动态分析(据说也可以很多层递归吧),先实现自动登录,得到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

QQ爬虫-爬取QQ空间相关推荐

  1. QQ好友列表获取导出类:爬虫爬取QQ号

    QQ好友列表获取类:爬虫爬取QQ号,这个个爬虫是拿来练手的,可以爬取网络中的QQ号,然后存储到本地 import urllib.request import ssl import re import ...

  2. python爬虫爬取qq空间说说_用python爬取qq空间说说

    环境:PyCharm+Chorme+MongoDB Window10 爬虫爬取数据的过程,也类似于普通用户打开网页的过程.所以当我们想要打开浏览器去获取好友空间的时候必定会要求进行登录,接着再是查看说 ...

  3. python爬虫爬取qq音乐热歌榜的歌曲到本地

    文章目录 项目目标 具体实现步骤 完整代码 运行结果 项目目标 爬取qq音乐热歌榜https://y.qq.com/n/yqq/toplist/26.html到本地文件夹 具体实现步骤 程序思路:用s ...

  4. 如何用python爬虫爬取qq空间说说

    之前学了下爬虫一直就想爬一下QQ空间 在爬取之前需要做的准备工作 安装python3 需要的库: re 正则 selenium 需要安装 chrome 或者 Firefox 还有他们的模拟 Chrom ...

  5. python爬取加密qq空间_python3爬虫爬取QQ好友空间说说

    开发环境Win10 python 3.6.3 pycharm 2018.1 第三方库csv requests pymysql selenium 无头浏览器 PhantomJS 主要思路通过QQ邮箱导出 ...

  6. 爬虫-爬取QQ空间 并生成图片

    #coding:utf-8import time from selenium import webdriver from lxml import etree #这里一定要设置编码格式,防止后面写入文件 ...

  7. 爬虫爬取qq看点视频

    我的上一篇文章有讲到graia机器人配置的问题,这次用他和爬虫实现一个比较有趣的东西 群友在查看电脑端qq看点的分享视频时会出现这种情况无法查看,但也并不是完全没有办法获取到视频的链接 mcl中我们可 ...

  8. python爬取QQ空间好友说说并生成词云

    最近自己玩爬虫玩得很嗨.想到爬QQ空间主要是因为在看网课的时候有不少人刷弹幕要去爬前女友空间..咳咳,虽然我没有前女友,但是这不失为一个有趣的练手机会.(爬完之后发现不会留下访客记录!确实很适合爬前女 ...

  9. python爬取qq数据_用Python爬取QQ好友空间说说进行分析

    前言: 本文涉及知识点有数据库的读写,python基础,浏览器开发者工具的使用,适用于有编程基础,了解过python的朋友阅读. 环境:PyCharm+Chrome+MongoDB Window10 ...

最新文章

  1. pandas任取dataframe中的一个或者多个数据行(head、tail、loc、iloc),将抽取到的一个或者多个数据行复制N次形成新的dataframe
  2. Linux 批量加用户
  3. 学习JNI一些基础知识
  4. java静态内部类了解一下
  5. DataContract 添加到 DataContractSet,因为已经存在数据协定名称也为命名空间
  6. argsort获得排序后的下标
  7. python 将pdf分页后插入至word中
  8. python基本运算
  9. 支持CDS view的SAP ALV IDA - 使用前提
  10. 【AC自动机】屏蔽词删除(ybtoj AC自动机-4)
  11. C语言判断计算机存储是大端还是小端
  12. mysql 不需要@的变量_mysql参数变量
  13. 欧盟批准ATT收购时代华纳 或年底前完成交易
  14. Effective_STL 学习笔记(二)小心对 “容器无关代码” 的幻想
  15. python算法编程书籍推荐_推荐一本编程算法书籍,你推荐哪本?
  16. html怎么做彩虹渐变,PS彩虹怎么做?|渐变工具制作彩虹方法教程
  17. 7-13 统计工龄 (20分)
  18. 高数 | 【多元函数微分学】全微分不变性、隐函数求导辨析
  19. PAT A1154 Vertex Coloring ——多少楼台烟雨中
  20. 中美大学生阅读书单公布:对比结果惊到你了吗?

热门文章

  1. OpenCV提取轮廓(去掉面积小的轮廓)
  2. 【AI】caffe使用步骤(一):将标注数据生成lmdb或leveldb
  3. 【Qt】在ubuntu14.04上安装Qt5.12(失败)
  4. qt发布后 mysql数据库_qt发布后 mysql数据库
  5. vue更新data中的数据页面不渲染_vue更新obj类data的属性无效,页面data没刷新解决方法vue.set...
  6. Redis初学:7(Set类型)
  7. oracle直查和call哪个更快,让oracle跑的更快1读书笔记二
  8. ios启动页尺寸_关于移动端App启动页的策划方案
  9. 终端主题_再见 XShell 和 ITerm 2,是时候拥抱全平台高颜值终端工具 Hyper 了!
  10. python replace函数_Python3 replace()函数使用方法