之前学了下爬虫一直就想爬一下QQ空间

在爬取之前需要做的准备工作

安装python3
需要的库:

re 正则
selenium

需要安装
chrome 或者 Firefox
还有他们的模拟
Chrome 模拟添加链接描述
Firefox 模拟添加链接描述

我使用的Firefox的 之前用Chrome的报错了

如何爬取

首先使用selenium模拟登录得到cookie(一般是没有验证码的,但是不要太多的异常登录),但之前我们要分析网页的结构打开qq空间登录界面

分析网页查看模拟的元素的id,并之后写入代码

def login():driver=webdriver.Firefox(executable_path=r'D:/Anaconda3/geckodriver.exe') #打开QQ网页driver.get("https://qzone.qq.com/")#特别找到这个framedriver.switch_to_frame('login_frame')driver.find_element_by_id('switcher_plogin').click()driver.find_element_by_id('u').clear()driver.find_element_by_id('u').send_keys('你的账号')driver.find_element_by_id('p').clear()driver.find_element_by_id('p').send_keys('你的密码')driver.find_element_by_id('login_button').click()time.sleep(3)#把Frame的定位换回来 都这样做的哦不然要报错driver.switch_to.default_content()return driver

这样我们就模拟登录成功了
但是这driver还是用不了 腾讯加入的可能是为了安全和反爬吧

#g_tk算法
def get_g_tk(cookie):hashes = 5381for letter in cookie['p_skey']:hashes += (hashes << 5) + ord(letter)  return hashes & 0x7fffffff
#获取qzondetoken参数
def get_title():driver=login()html=driver.page_sourcexpat=r'window\.g_qzonetoken = \(function\(\)\{ try\{return (.*?);\} catch\(e\)'qzonetoken=re.compile(xpat).findall(html)[0]

继续分析网页这里先点开开发者模式(F12),(在浏览器中手动登录后)再点击好友选项

在一大堆服务端刚发过来的数据中找到这个,有好友的信息

你会发现uin是好友的qq号,name是名字 哈哈 掉落好友qq列表技能

def get_allQQ(mysession,g_tk,qzonetoken): #获取好友QQurl_friend='https://user.qzone.qq.com/proxy/domain/r.qzone.qq.com/cgi-bin/tfriend/friend_ship_manager.cgi?uin=str(qq)&do=1&rd=0.7020990069082498&fupdate=1&clean=1&g_tk='+str(g_tk)+'&qzonetoken='+qzonetoken+'&g_tk='+str(g_tk)friendpat='"uin":(.*?),'resp=mysession.get(url_friend)friendlist=re.compile(friendpat).findall(resp.text)time.sleep(3)return friendlist

再之后的就是爬取好友的空间说说了

#主要就是这个网址上爬取url='https://h5.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6?uin='+str(qq)+'&inCharset=utf-8&outCharset=utf-8&hostUin='+str(qq)+'&notice=0&sort=0&pos=0&num=20&cgi_host=http://taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6&code_version=1&format=jsonp&need_private_comment=1&g_tk='+str(g_tk)+'&qzonetoken='+str(qzonetoken)

代码太多就不写了,需要注意的上面都有了,剩下的就是爬取数据了,需要的完整代码私聊免费给你
我好友1百多个爬了30多分钟,爬下了1万3条数据
做出的词云

完整代码 git

如何用python爬虫爬取qq空间说说相关推荐

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

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

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

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

  3. QQ爬虫-爬取QQ空间

    背景: 在一篇个人博客看到了相关的爬虫的知识,个人比较有兴趣,就花了点时间研究了一下,主要通过好友空间的互动(相互访问量,点赞,评论,以及其他互动),以及好友之间聊天的活跃度,日常点赞量,好友之间的关 ...

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

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

  5. python selenium爬取QQ空间说说

    准备工作 安装selenium, pyquery, json模块. 使用的是火狐浏览器,所以还要安装geckodriver, 下载好后,把geckodirver.exe文件放在python.exe同一 ...

  6. Python单线程爬取QQ空间说说存入MySQL并生成词云(超详细讲解,踩坑经历)

    利用python爬取好友说说并分析 看了网上的许多博客,基本上都是一个样,基本的知识也没详细解释,我这次也想跟大家仔细分析一下,自己还是要有一定爬虫基础,本人技术有限,如果本文哪有错误或不够准确的地方 ...

  7. 如何用Python爬虫爬取网页免费小说

    如何用python爬网页(小说阅读网)免费小说 小说网址:https://www.readnovel.com/ 要导入requests和beautifulsoup4的包.pycharm点击File-& ...

  8. 如何用python爬虫爬取网络小说?

    这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节的URL. 分析了该小说的目录页htt ...

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

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

最新文章

  1. 小黑小波比.404 (Not Found)
  2. 工具类的方法怎么引用_Hutool中那些常用的工具类和方法
  3. Android移动开发之【Android实战项目】记一次app开发过程!
  4. Android基础——项目的文件结构(三)
  5. 肖仰华 | 领域知识图谱落地实践中的问题与对策
  6. 10天内构建良好的REST API的指南
  7. stmcubemx 脉冲计数_STM32CubeMX:ETR外部脉冲计数器
  8. PostgreSQL技术周刊第17期:PostgreSQL用户应掌握的高级SQL特性
  9. 【远程重启】使用windows自带的shutdown命令远程重启服务器(测试不行,此文作废)...
  10. Java实时读取日志文件
  11. 双重控制门锁程序_智能化发展趋势下,智能门锁如何获得市场青睐?
  12. swot分析模板_营销策划方案怎么写?价值不菲的营销策划架构44页PPT模板
  13. sip信令跟踪工具sngrep
  14. 分享几个软件测试逻辑思维和综合面试题
  15. 用坚果云同步mysql_使用技巧 | 什么?坚果云还可以同步这些App?
  16. React 运行流程
  17. 快速删除oracle中重复数据,效率高于直接删除数倍.
  18. 2018-2019-2 网络对抗技 20165328 Exp7: 网络欺诈防范
  19. GN_2_使用GN编译自己写的程序
  20. TC358743XBG HDMI转MIPI CSI东芝转换芯片

热门文章

  1. 正确地使用 BeanUtils.copyProperties
  2. MySQL压缩包安装方法
  3. 演艺O2O即将爆发,蛋糕如何分?
  4. Python 爬虫教程中转站
  5. 侠盗飞车罪恶都市加装升级补丁-侠盗猎车手提供下载
  6. 你早就知道该怎么用了
  7. 让STM32CubeMX带你飞,菜鸟秒变STM32高手
  8. 编译原理(文法、符号表)
  9. turbolinux mysql 5.0 cluste,PostgreSQL存在多个安全漏洞
  10. 2022 年度盘点 | 更成熟的 AI,更破圈的技术狂欢