开发工具

Python版本:3.6.4

相关模块:

requests模块;

selenium模块;

lxml模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块,并前往:

http://npm.taobao.org/mirrors/chromedriver/

下载与自己使用的Chrome浏览器版本对应的驱动文件,下载完毕后将chromedriver.exe所在文件夹添加到环境变量中即可。

原理简介

本文主要解决QQ空间的登录问题。

其主要思路为:

利用selenium模拟登录QQ空间从而获取登录QQ空间所需的cookie值,这样就可以利用requests模块来抓取QQ空间的数据了。

为什么这么绕?

selenium好久不用,写起来太慢了。而且它本身速度和资源占用等问题一直为大家所诟病。

And 省略无数条理由。

一些细节:

(1)第一次获取cookie之后将其保存下来,下次再登录之前先试试保存的cookie有没有用,有用直接使用就可以了,这样可以进一步节省时间。

(2)抓包分析过程中,可以发现抓取QQ空间数据所需请求的链接都包含g_tk这个参数,这个参数实际上是使用cookie中的skey参数计算获得的,懒得打公式了,直接贴一小段代码吧:

最后:

不抓点数据好像不能证明这篇文章真的有用?

好吧,那就把:

扒下来吧~~~

具体实现过程详见相关文件中的源代码。

使用演示

QQ号(username)和密码(password):

在QQ_Spider.py文件中填写,位置如下图所示:

运行:

在cmd窗口运行QQ_Spider.py文件即可。

结果:

That's All.

下期预告

在本期基础上抓取好友的个人信息,并可视化分析抓取的结果。有兴趣的小伙伴可以提前试试~~~

事实上,微调本文所提供的代码,理论上是可以抓取QQ所有用户的信息的。当然,只是理论上,以及干很多有趣的事情。

T_T作为一个不搞事且不爱喝茶的boy,上述的理论我就不负责实现了。