參考資料:python技術(shù)的最佳
可能需要Pip install lxml等庫
此腳本基于python3、腳本路徑D:\python\運行。以下是腳本內(nèi)容
-銀
#coding:utf-8
Import time
From selenium import網(wǎng)路驅(qū)動程式
From lxml導(dǎo)入樹
#必須設(shè)置編碼格式,以便下次寫入文件時不報告錯誤
Import sys
#reload(sys)
#( 'utf-8 ')
#python3默認系統(tǒng)編碼為UTF-8
Friend=[1] #根據(jù)朋友的QQ號碼、朋友的空間要求,可以訪問
用戶=[2] #您的QQ號
Pw=[3] #您的QQ密碼
#獲取瀏覽器驅(qū)動程序
#driver=webdriver。Firefox()
驅(qū)動程序=webdriver.chrome()
#driver=webdriver。Chrome()
#最大化瀏覽器窗口
#driver.maximize_window()
#瀏覽器地址將轉(zhuǎn)到QQ登錄頁面
司機。get(';)。
#因此,必須在此處選擇幀。否則,將找不到下面所需的web元素
驅(qū)動程序.(' 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操作當前頁面
司機。()
#轉(zhuǎn)到URL,friend您可以隨意更改為想要訪問的空間
司機。get(';Friend '/311 ')
Next_num=0 #初始“下一個”的id
While True:
#使用下拉滾動條使瀏覽器加載動態(tài)加載的內(nèi)容。
#我從1到6每5頁加載數(shù)據(jù)
For I in range(1,6):
Height=20000*i#一次滑動20000像素
Strword=' window.scrollby (0,' str (height)')'
Driver.execute_script(strWord)
(4)
#大多數(shù)情況下,網(wǎng)頁由多個幀或iframe組成,webdriver默認情況下會查找最外部的幀(frame)。
#因此,必須選擇此處的“幀”(frame)。否則,將找不到下面所需的web元素
驅(qū)動程序.(' app _ canvas _ frame ')
Selector=e)
divs=('//*[@ id=' msg list ']/Li/div[3]')
#其中a表示可以在不清空內(nèi)容的情況下寫入
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 ')
#如果已經(jīng)到達結(jié)束頁,“下一步”按鈕沒有id,可以結(jié)束
Ifdriver。(' pager _ next _ ' str(next _ num))=-1:
布雷克
#請找到“下一步”按鈕,因為下一頁上的按鈕會動態(tài)更改。必須動態(tài)記錄在此處
driver . find _ element _ by _ id(' pager _ next _ ' str(next _ num))。click()
#“下一頁”的id
Next_num=1
#在下一個循環(huán)中,必須先向下翻頁,所以必須跳到外部幀上
司機。()
-以上代碼內(nèi)容-
從Cmd命令行運行腳本
python d :/python/“你的朋友QQ號”“你的QQ號”“你的QQ密碼”
命令行執(zhí)行的結(jié)果如下:
web界面多次測試登錄觸發(fā)器安全機制,因此可以進行代碼登錄。沒問題。手機QQ掃描隊列(QR)代碼登錄。
生成詞云
生成詞云需要用到的庫:
wordcloud, 生成詞云
matplotlib, 生成詞云圖片
jieba ,這個庫可用可不用,但我因為中文一直顯示不出來,后來加上了這個庫,就能顯示中文了。
pip install wordcloud
pip install matplotlib
pip install jieba
代碼名字ciyun.py以下是代碼
---------------------------------------------------------
#coding:utf-8
"""
使用結(jié)巴分詞生成云圖
說明這里
1.生成詞云一定要設(shè)置字體樣式,否則漢字出現(xiàn)亂碼或者不顯示
2.我不知道為什么本機一直顯示不了中文,后面我加了jieba分詞詞庫就可以顯示中文了
"""
from wordcloud import WordCloud
import ma as plt
import jieba
#生成詞云
def create_word_cloud(filename):
text= open("{}".format(filename)).read()
# 結(jié)巴分詞
wordlist = jieba.cut(text, cut_all=True)
wl = " ".join(wordlist)
# 設(shè)置詞云
wc = WordCloud(
# 設(shè)置背景顏色
background_color="white",
# 設(shè)置最大顯示的詞云數(shù)
max_words=2000,
# 這種字體都在電腦字體中,一般路徑
font_path='C:\Windows\Fonts\;,
height= 1200,
width= 1600,
# 設(shè)置字體最大值
max_font_size=100,
# 設(shè)置有多少種隨機生成狀態(tài),即有多少種配色方案
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')
------------------------------以上是代碼---
執(zhí)行代碼
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.
附上我代碼目錄截圖
---------------------
版權(quán)聲明:本文為CSDN博主「運維自動化&云計算」的原創(chuàng)文章,遵循CC 4.0 by-sa版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:
1.《qq里面怎么別人的說說?我來告訴你答案我的第一個Python爬蟲:動態(tài)爬取QQ說說并生成詞云,分析朋友狀況》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《qq里面怎么別人的說說?我來告訴你答案我的第一個Python爬蟲:動態(tài)爬取QQ說說并生成詞云,分析朋友狀況》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/3215030.html