参考资料:python技术的最佳
可能需要Pip install lxml等库
此脚本基于python3、脚本路径D:\python\运行。以下是脚本内容
-银
#coding:utf-8
Import time
From selenium import网路驱动程式
From lxml导入树
#必须设置编码格式,以便下次写入文件时不报告错误
Import sys
#reload(sys)
#( 'utf-8 ')
#python3默认系统编码为UTF-8
Friend=[1] #根据朋友的QQ号码、朋友的空间要求,可以访问
用户=[2] #您的QQ号
Pw=[3] #您的QQ密码
#获取浏览器驱动程序
#driver=webdriver。Firefox()
驱动程序=webdriver.chrome()
#driver=webdriver。Chrome()
#最大化浏览器窗口
#driver.maximize_window()
#浏览器地址将转到QQ登录页面
司机。get(';)。
#因此,必须在此处选择帧。否则,将找不到下面所需的web元素
驱动程序.(' login _ frame ')
#自动单击帐户登录方法
driver . find _ element _ by _ id(' switcher _ plog in ')。click()
#在帐户输入框中输入已知的QQ帐户
Driver.find _ element _ by _ id ('u ')。send _ keys(用户)
#密码框输入已知密码
Driver.find _ element _ by _ id ('p ')。send _ keys (pw)
#自动单击登录按钮
driver . find _ element _ by _ id(' log in _ button ')。click()
#让webdriver操作当前页面
司机。()
#转到URL,friend您可以随意更改为想要访问的空间
司机。get(';Friend '/311 ')
Next_num=0 #初始“下一个”的id
While True:
#使用下拉滚动条使浏览器加载动态加载的内容。
#我从1到6每5页加载数据
For I in range(1,6):
Height=20000*i#一次滑动20000像素
Strword=' window.scrollby (0,' str (height)')'
Driver.execute_script(strWord)
(4)
#大多数情况下,网页由多个帧或iframe组成,webdriver默认情况下会查找最外部的帧(frame)。
#因此,必须选择此处的“帧”(frame)。否则,将找不到下面所需的web元素
驱动程序.(' app _ canvas _ frame ')
Selector=e)
divs=('//*[@ id=' msg list ']/Li/div[3]')
#其中a表示可以在不清空内容的情况下写入
with open(' d : \ python \ QQ _ word . txt ',' a') as f3360
For div in divs:
Qq _ name=div.xpath(' ./div [2]/a/text()')
Qq _ content=div.xpath('./div [2]/pre/text()')
Qq _ time=div.xpath(' ./div [4]/div [1]/span/a/text()')
QQ _ name=QQ _ name[0]if len(QQ _ name)0 else ' '
QQ _ content=QQ _ content[0]if len(QQ _ content)0 else ' '
QQ _ time=QQ _ time[0]if len(QQ _ time)0 else ' '
打印(QQ _ name、QQ _ time和QQ _ content)
F.write(qq_content '\n ')
#如果已经到达结束页,“下一步”按钮没有id,可以结束
Ifdriver。(' pager _ next _ ' str(next _ num))=-1:
布雷克
#请找到“下一步”按钮,因为下一页上的按钮会动态更改。必须动态记录在此处
driver . find _ element _ by _ id(' pager _ next _ ' str(next _ num))。click()
#“下一页”的id
Next_num=1
#在下一个循环中,必须先向下翻页,所以必须跳到外部帧上
司机。()
-以上代码内容-
从Cmd命令行运行脚本
python d :/python/“你的朋友QQ号”“你的QQ号”“你的QQ密码”
命令行执行的结果如下:
web界面多次测试登录触发器安全机制,因此可以进行代码登录。没问题。手机QQ扫描队列(QR)代码登录。
生成词云
生成词云需要用到的库:
wordcloud, 生成词云
matplotlib, 生成词云图片
jieba ,这个库可用可不用,但我因为中文一直显示不出来,后来加上了这个库,就能显示中文了。
pip install wordcloud
pip install matplotlib
pip install jieba
代码名字ciyun.py以下是代码
---------------------------------------------------------
#coding:utf-8
"""
使用结巴分词生成云图
说明这里
1.生成词云一定要设置字体样式,否则汉字出现乱码或者不显示
2.我不知道为什么本机一直显示不了中文,后面我加了jieba分词词库就可以显示中文了
"""
from wordcloud import WordCloud
import ma as plt
import jieba
#生成词云
def create_word_cloud(filename):
text= open("{}".format(filename)).read()
# 结巴分词
wordlist = jieba.cut(text, cut_all=True)
wl = " ".join(wordlist)
# 设置词云
wc = WordCloud(
# 设置背景颜色
background_color="white",
# 设置最大显示的词云数
max_words=2000,
# 这种字体都在电脑字体中,一般路径
font_path='C:\Windows\Fonts\;,
height= 1200,
width= 1600,
# 设置字体最大值
max_font_size=100,
# 设置有多少种随机生成状态,即有多少种配色方案
random_state=30,
)
myword = wc.generate(wl) # 生成词云
# 展示词云图
(myword)
("off")
()
wc.to_file('d:\python\;) # 把词云保存下
if __name__ == '__main__':
create_word_cloud('d:\python\qq_word.txt')
------------------------------以上是代码---
执行代码
C:\Users\huangshumao>python d:\python\ciyun.py
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\HUANGS~1\AppData\Local\Temp\jieba.cache
Loading model cost 0.868 seconds.
Prefix dict has been built succesfully.
附上我代码目录截图
---------------------
版权声明:本文为CSDN博主「运维自动化&云计算」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:
1.《qq里面怎么别人的说说?我来告诉你答案我的第一个Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《qq里面怎么别人的说说?我来告诉你答案我的第一个Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3215030.html