对编程没有兴趣的朋友可以直接看后面的数据分析结果,
开发环境:win7下的
、MySQL5.7
编辑器:
、ipython,Navicat for mysql
需要的python第三方库:
selenium、PIL、Requests、MySQLdb、csv、pandas、numpy、matplotlib、jieba、wordcloud
另外还用到了无头浏览器PhantomJS。有兴趣的加群(621710153)
主要思路:
一、通过selenium+phantomjs模拟登录qq空间取到cookies和g_qzonetoken,并算出gtk
二、通过Requests库利用前面得到的url参数,构造http请求
三、分析请求得到的响应,是一个json,利用正则表达式提取字段
四、设计数据表,并将提取到的字段插入到数据库中
五、通过qq邮箱中的导出联系人功能,把好友的qq号导出到一个csv文件,遍历所有的qq号爬取所有的说说
六、通过sql查询和ipython分析数据,并将数据可视化
七、通过python的第三方库jieba、wordcloud基于说说的内容做一个词云
闲话不多说,直接上代码
通过selenium+phantomjs模拟登录qq空间取到cookies和g_qzonetoken,并算出gtk
import refrom selenium import webdriverfrom time import sleepfrom PIL import Image#定义登录函数def QR_login():通过Requests库利用前面得到的url参数,构造http请求
通过抓包分析可以找到上图这个请求,这个请求响应的是说说信息
通过火狐浏览器的一个叫json-dataview的插件可以看到这个响应是一个json格式的,开心!
然后就是用正则表达式提取字段了,这个没什么意思,直接看我的代码
def parse_mood(i):其实到这里爬虫的主要的代码就算完了,之后主要是通过QQ邮箱的联系人导出功能,构建url列表,最后等着它运行完成就可以了。这里我单线程爬200多个好友用了大约三个小时,拿到了十万条说说。下面是爬虫的主体代码。
#从csv文件中取qq号,并保存在一个列表中csv_reader = c(open('qq.csv'))friend=[]for row in csv_reader:下面是爬取的数据,有100878条!(没想到居然有这么多)
有兴趣的加群(621710153)