前两天看见一篇分析豆瓣上对战狼2评论的分析,觉得挺好玩,就有了这篇文章。PS:顺便吐槽一下,本来pthon对中文的支持就不很友好,然后qq好友的昵称……你懂的,在这里把我快逼疯了,一会encode一会deconde,一会gb2312一会utf-8,只有这个时候觉得还是c#人性那么一丢丢~
1. 数据获取
访问qq空间是需要密码的,直接用爬虫还需要很多额外的工作量,这个不是重点,就直接打开qq空间 进到某人的说说下,然后F12吧
2. 数据提取
需要找到要提取的数据的模式,其中包括:说说的内容、发表时间、点赞好友列表、评论和主人回复,最后加一个每一条说说的模式
        self.contentPattern = r'<li class="f-single'#一条说说的模式
        self.titlePattern = r'<div class="f-info">(.|\n)*?</div>'#说说标题,内容
        self.nickNamePattern = r'<div class="user-list">(.|\n)*?</div>'#点赞的好友昵称
        self.visitorMsgPattern = r'<li class="comments-item bor3" data-type="commentroot"(.|\n)*?</li>'#评论的内容
        self.shoushuoTimePattern = r'<span class=" ui-mr8 state">(.|\n)*?</span>'#发说说的时间
其中第一个,用正则表达式出来的结果很不满意,最终用了字符查找来分割的(有点不好看,不过效果还不错)
    def __GetShoushouItem__(self,filePath):
        itemList = []
        contentList = []
        contentFile = open(filePath,'r')
        content = ''
        try:
            content = contentFile.read()
            index = content.find(self.contentPattern,0)
            while index != -1:
                itemList.append(index)
                index = content.find(self.contentPattern,index + 1)
                contentList.append(content[itemList[len(itemList) - 1]:index].decode('utf-8'))
        finally:
            contentFile.close()
        return contentList
用模式提取之后,还是包含了大量的html标签,这个时候就可以用BeautifulSoup了
    #分析标题模块内的内容,返回说说的标题内容
    #titleContent:由titlePattern得到的div内容块
    def __TitlePatternAnalysis__(self,content):
        rePattern = re.search(self.titlePattern,content)
        titleContent = rePattern.group(0) if rePattern != None else ''
        soup = BeautifulSoup(titleContent)
        return soup.get_text()
把感兴趣的内容都如此操作一番后,把得到的数据格式化后就可以提交到下个处理单元啦
3. 数据整理、分析
定义一个一条说说的数据结构:
class ShoushouItem:
    def __inti__(self):
        self.title = ''
        self.nickList = []
        self.nickNum = ''
        self.vistorMsg = {}
        self.shoushouTime = ''
然后分析这个结构的列表就ok了
比如哪个好友给你点赞最多:
    #每个好友曾经的点赞次数
    def __GetAllNickPraise__(self):
        nickdic = {}
        for item in self.contentList:
            for name in item.nickList:
                if nickdic.get(name) == None:
                    nickdic[name] = 1
                else:
                    nickdic[name] += 1
        return nickdic
把这个字典存成一个有格式的文件
    def CreateUserTable(self):
        paraiseUserDic = self.__GetAllNickPraise__()
        f = open("out.txt","w")
        for key in paraiseUserDic:
            temp = key.encode('utf-8') + ',' + str(paraiseUserDic[key]) + '\r\n'
            f.writelines(temp)
        f.close()

利用在线云图生成工具,把上面的文件导入,点击生成就ok了,点赞次数的好友图有出卖好友的嫌疑就不贴了,只贴一张主人回复的词频图吧

QQ空间说说分析 Python相关推荐

  1. 从QQ空间热度分析看社区营销

    近日,腾讯QQ新上线了一款名为空间热度分析的工具,通过这个工具可以发现社交价值,挖掘海量数据,并引入图表进行模拟展示.这款工具是网络社区营销又一个数据来源和参考依据. 网络营销中的社区媒体主要是指具有 ...

  2. python访问陌生人qq空间_使用Python+Selenium模拟登录QQ空间

    使用Python+Selenium模拟登录QQ空间 爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleni ...

  3. python爬取加密qq空间_使用python+selenium爬取qq空间好友动态

    使用python+selenium爬取qq空间好友动态 分析过程如下: 要想用selenium登陆qq空间,必须点击账号密码登陆按钮然后再填写账号密码登陆. 1.PNG 点击账号密码按钮后跳转到如下页 ...

  4. python访问陌生人qq空间_在Python中使用Phantomjs模拟登录QQ空间

    一.问题来源 在使用Python进行数据爬取的过程中,我们一般使用Selenuim自动化测试工具对需要进行登录验证和动态JS数据的站点进行爬取.而与Selenuim相对应的浏览器组件,为了方便起见,一 ...

  5. php取qq空间说说id,Python爬取qq空间说说的实例代码

    具体代码如下所示: #coding:utf-8 #!/usr/bin/python3 from selenium import webdriver import time import re impo ...

  6. y空间兑换代码_Python爬虫实战:QQ空间全自动点赞工具

    QQ空间自动点赞 前景提要目标确定分析介绍登陆获取cookie寻找XML寻找可变参数获取第一个空间动态寻找点赞所需的URL寻找可变参数功能提升到秒赞全部代码最后还是希望你们能给我点一波小小的关注.奉上 ...

  7. 通过Python爬取QQ空间说说并通过Pyechart进行可视化分析

    有一天我突然发现自己空间的说说竟然已经达到1833条,于是萌生了爬一下看看的想法(其实就是想学下python爬虫).我找了一些博客,方法不少,但是有些并不适用.所以我把真正能用的方法记录下来,并且爬取 ...

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

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

  9. python分析qq好友_Python2.7获取QQ空间部分好友

    首先需要安装curl工具,然后复制curl 参考http://blog..net/gsls200808/article/details/46933307 浏览器打开http://user.qzone. ...

最新文章

  1. 用了三年 ThreadLocal 今天才弄明白其中的道理
  2. 优质网站策划从四个方面进行判断
  3. 使用Firebug或chrome-devToolBar深入学习javascript语言核心
  4. 【C++ Primer】类的多态
  5. php时间操作函数总结,基于php常用函数总结(数组,字符串,时间,文件操作)
  6. 【JAVA基础篇】注解
  7. mysql 主从热备份 5.6 参数_MySQL主从热备份
  8. node.js(五)项目创建管理
  9. 《深入理解计算机网络》读后小记 8、IP地址和子网
  10. 信息网络传播中的服务器标准,信息网络传播权的服务器标准与实质替代标准之争...
  11. Redis6.2.6下载和安装
  12. 用磁珠隔地解决静电问题
  13. db2 数据库的常用命令
  14. 在我差点崩溃了的时候,还好有主从复制
  15. android开发下载功能实现原理图,Android开发者掌握Android图像显示原理
  16. Jenkins - cannot find symbol
  17. 【Mysql】认识Mysql重要架构(一)
  18. 从杉车网新能源车选,看新能源汽车市场老派与新锐之争
  19. 更改keil主题颜色背景
  20. SAP 零售 FMS 物料主数据(二)归档

热门文章

  1. J2me图片缩放与渐变色源码
  2. DatabaseMetaData查询集群下的库名
  3. 获取APP的URLscheme
  4. 芯片国产自研将是不可逆转的趋势
  5. phpcms v9手机门户配置方法_无需整理
  6. MessageBox所有图标样例
  7. php中文网线上班怎么样,数组--PHP中文网第九期线上班
  8. (基于Python的毕业设计)微博舆情分析系统(附源码+论文)
  9. JS实现灯泡亮熄特效
  10. 计算机环境下的审计技术方法有哪些,审计技术方法的类型包括哪些