思路

1.确认访问的URL

2.模拟登录你的QQ号

3.判断好友空间是否加了权限,切换到说说的frame,爬取当前页面数据,下拉滚动条,翻页继续获取 爬取的内容写入本地TXT文件中

4.爬取到最后一页,读取TXT文件从而生成词云

具体分析

1.确认访问的URL

这就很简单了,我们通过观察发现,QQ空间好友的URL:

https://user.qzone.qq.com/{好友QQ号}/311

2.我们在请求的时候会遇到模拟登录,也就是要通过Selenium+浏览器登录你的QQ号后才能访问你好友的QQ空间

下面是模拟登录的代码:

file = 'C:/Users/Administrator/Desktop/{}.txt'.format(qq)

driver = webdriver.Firefox()

driver.maximize_window() #窗口最大化

driver.get('https://user.qzone.qq.com/{}/311'.format(qq)) #URL

driver.implicitly_wait(10) # 隐示等待,为了等待充分加载好网址

driver.find_element_by_id('login_div')

driver.switch_to_frame('login_frame') #切到输入账号密码的frame

driver.find_element_by_id('switcher_plogin').click()##点击‘账号密码登录’

driver.find_element_by_id('u').clear() ##清空账号栏

driver.find_element_by_id('u').send_keys('你的QQ账号')#输入账号

driver.find_element_by_id('p').clear()#清空密码栏

driver.find_element_by_id('p').send_keys('你的QQ密码')#输入密码

driver.find_element_by_id('login_button').click()#点击‘登录’

driver.switch_to_default_content() #跳出当前的frame,这步很关键,不写会报错的,因为你登录后还要切刀另一个frame

需要强调是 driver.switch_to_default_content() ,表示跳出当前的frame,这步很关键,因为你登录后还要切刀另一个frame。不写的话会出现下面的错误:

3.第三部分我分几个点来说:

(1).判断空间是否加了权限

try:

driver.find_element_by_id('QM_OwnerInfo_Icon')#判断是否QQ空间加了权限

b = True

except:

b = False

(2)切换到说说的frame,这个大家都会找吧

(3)下拉滚动条

下拉滚动条是为了点击‘下一页’,下拉到可见视图。下拉滚动条要注意一点:

一定要对应它的frame,不要在爬取说说的frame下拉。

#分4此下拉,确保能下拉到底部

for j in range(1, 5):

driver.execute_script("window.scrollBy(0,5000)")

time.sleep(2)

(4).爬取说说数据,这就简单了吧?我用的xpath获取的说说的title,感兴趣的朋友可以把时间等数据一起获取

selector = etree.HTML(driver.page_source)

title = selector.xpath('//li/div/div/pre/text()')

(5).翻页

直接点击‘下一页’即可。

driver.find_element_by_link_text(u'下一页').click()

1

(6).txt数据写入,不用多说,爬取到title了直接写入

for i in title:

if not os.path.exists(file):

print('创建TXT成功')

with open(file, 'a+') as f:

f.write(i + '\n\n')

f.close()

4.生成词云,这只是普通的模式,想具体了解可以看我以前文章或者Google

def get_wordcloud(file):

f = open(file, 'r', encoding='gbk').read()

# 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云

cut_text = " ".join(jieba.cut(f))

wordcloud = WordCloud(

# 设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的

font_path="C:/Windows/Fonts/simfang.ttf",

# 设置了背景,宽高

background_color="white", width=2000, height=1380).generate(cut_text)

plt.imshow(wordcloud, interpolation="bilinear")

plt.axis("off")

plt.show()

由于时间问题,此篇文章只支持输入一个好友的QQ号,你要是想爬取你的所有的QQ好友的说说,可以现在QQ邮箱获取你所有好友的QQ号,然后生成一个数组,依次获取就可以了。

python爬取qq好友网络状态_Python爬虫实战----爬取QQ空间好友说说并生成词云(超详细)...相关推荐

  1. python爬取陌生人的qq空间_Python爬取QQ空间好友说说并生成词云(超详细)

    前言 先看效果图: 思路 1.确认访问的URL 2.模拟登录你的QQ号 3.判断好友空间是否加了权限,切换到说说的frame,爬取当前页面数据,下拉滚动条,翻页继续获取 爬取的内容写入本地TXT文件中 ...

  2. python爬取boss直聘招聘信息_Python爬虫实战-抓取boss直聘招聘信息

    Python Python开发 Python语言 Python爬虫实战-抓取boss直聘招聘信息 实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Pyth ...

  3. python爬取三国演义文本,统计三国演义中出场次数前30的人物,并生成词云、图表

    目录 1.目标 2.码前须知 3.操作流程 4.完整代码 5.总结 1.目标 python爬取三国演义,生成词云.图表 2.码前须知 项目目标:三国人物名称及出现次数-----数据统计分析 提出问题: ...

  4. python爬虫爬取豆瓣电影信息城市_python爬虫,爬取豆瓣电影信息

    hhhhh开心,搞了一整天,查了不少python基础资料,终于完成了第一个最简单的爬虫:爬取了豆瓣top250电影的名字.评分.评分人数以及短评. 代码实现如下:#第一个最简单的爬虫 #爬取了豆瓣to ...

  5. python音乐下载器交互界面设计_Python爬虫实战:制作各大音乐平台的聚合的音乐下载器...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于Python技术,作者 派森酱 转载地址 https://blog ...

  6. python爬虫爬取歌曲_python爬虫实战:爬取全站小说排行榜

    喜欢看小说的骚年们都知道,总是有一些小说让人耳目一新,不管是仙侠还是玄幻,前面更了几十章就成功圈了一大波粉丝,成功攀上飙升榜,热门榜等各种榜,扔几个栗子出来: 新笔趣阁是广大书友最值得收藏的网络小说阅 ...

  7. python 爬取贝壳网小区名称_Python爬虫实战:爬取贝壳网二手房40000条数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于啤酒就辣条 ,作者啤酒就辣条 一.网页分析 爬取贝壳网石家庄二 ...

  8. python爬取腾讯新闻_python爬虫实战――爬取腾讯新闻 !

    无论我们通过浏览器打开网站.访问网页,还是通过脚本对URL网址进行访问,本质上都是对HTTP服务器的请求,浏览器上所呈现的.控制台所显示的都是HTTP服务器对我们请求的响应. 以打开腾讯新闻官网为例, ...

  9. python爬取链家新房数据_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  10. python爬取饿了么订单_python爬虫:爬取某图外卖数据有这篇文章就够了

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 ( 想要学习Python?Pyth ...

最新文章

  1. python pandas读取excel-Python使用Pandas读写Excel实例解析
  2. 操作系统性能监控-磁盘IO
  3. Eclipse 安装Spring tool suite 解决官网下载jar文件无法安装/安装过程出错,及如何下载对应版本zip文件等问题,避坑
  4. linux 卸载自带java_卸载linux系统自带JDK,安装自己的jdk
  5. Angular - - angular.element
  6. 不止 5G 和鸿蒙,华为最新大招,扔出 AI 计算核弹
  7. 小白学习政策定价内容
  8. 491. 递增子序列
  9. 设置Emeditor为Python的简易开发工具
  10. 在线Js,JavaScript压缩格式化工具
  11. si4463跳频功能简介
  12. usb芯片+android+驱动,PL2303芯片驱动
  13. error: passing ‘const xxx’ as ‘this’ argument discards qualifiers [-fpermissive]的解决方案
  14. 清华大学计算机系2016名单,清华大学2016年自主招生北京考生入选名单汇总
  15. 8583报文MAC验证实现过程
  16. 编译原理:LL(1)文法 语法分析器(预测分析表法)
  17. 如果你也23岁,那么,别迷茫了!
  18. 基于Win10单机部署kubernetes应用
  19. 拼多多非标品如何推广?场景推广合适哪些产品?
  20. 格子玻尔兹曼法学习记录(附MATLAB画图源程序)

热门文章

  1. 65. 布置行内脚本
  2. 7. HTTP 请求,响应
  3. 第014讲 CSS 定位
  4. msysgit+apache安装说明 - gitweb服务器部分
  5. vi 编辑器基本命令
  6. Base64压缩UUID长度替换Hibernate原有UUID生成器
  7. 《Entity Framework 6 Recipes》中文翻译系列 (42) ------ 第八章 POCO之使用POCO
  8. [转]Linux统计代码行数
  9. Hadoop 参数配置优化
  10. Windows线程生灭 (二)