原理是利用python來模擬登錄QQ空間,對一個QQ的空間說說內容進行爬取,把爬取的內容保存在txt文件中,而後根據txt文件生成詞雲。
如下是生成的詞雲圖
html
個人環境:Mac
,Anaconda
,Python2.7
,以及各類用到的Python
庫python
Anaconda 是一個可用於科學計算的 Python 發行版,支持 Linux、Mac、Windows系統,內置了經常使用的科學計算包。它解決了官方 Python 的兩大痛點。linux
conda 是 Anaconda 下用於包管理和環境管理的工具,功能上相似 pip 和 vitualenv 的組合。安裝成功後 conda 會默認加入到環境變量中,所以可直接在命令行窗口運行命令 condagit
conda 的環境管理與 virtualenv 是基本上是相似的操做。github
# 查看幫助 conda -h # 基於python3.6版本建立一個名字爲python36的環境 conda create --name python36 python=3.6 # 激活此環境 source activate python36 # linux/mac # 再來檢查python版本,顯示是 3.6 python -V # 退出當前環境 source deactivate python36 # 刪除該環境 conda remove -n python36 --all # 查看因此安裝的環境 conda info -e
conda 的包管理功能可 pip 是同樣的,固然你選擇 pip 來安裝包也是沒問題的。web
# 安裝 matplotlib conda install matplotlib # 查看已安裝的包 conda list # 包更新 conda update matplotlib # 刪除包 conda remove matplotlib
在 conda 中 anything is a package。conda 自己能夠看做是一個包,python 環境能夠看做是一個包,anaconda 也能夠看做是一個包,所以除了普通的第三方包支持更新以外,這3個包也支持。好比:
Anaconda 的鏡像地址默認在國外,用 conda 安裝包的時候會很慢,目前可用的國內鏡像源地址有清華大學的。修改 ~/.condarc (Linux/Mac)canvas
channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - defaults show_channel_urls: true
若是使用conda安裝包的時候仍是很慢,那麼能夠考慮使用pip來安裝,一樣把 pip 的鏡像源地址也改爲國內的,豆瓣源速度比較快。修改 ~/.pip/pip.conf (Linux/Mac)瀏覽器
[global] trusted-host = pypi.douban.com index-url = http://pypi.douban.com/simple
環境搭建好以後就能夠開始愉快地玩數據分析了。app
# 下拉滾動條,使瀏覽器加載出動態加載的內容, # 我這裏是從1開始到6結束 分5 次加載完每頁數據 for i in range(1,6): height = 20000*i#每次滑動20000像素 strWord = "window.scrollBy(0,"+str(height)+")" driver.execute_script(strWord) time.sleep(4) # 不少時候網頁由多個<frame>或<iframe>組成,webdriver默認定位的是最外層的frame, # 因此這裏須要選中一下說說所在的frame,不然找不到下面須要的網頁元素 driver.switch_to.frame("app_canvas_frame") selector = etree.HTML(driver.page_source) divs = selector.xpath('//*[@id="msgList"]/li/div[3]')
生成詞雲鬚要用到的庫:dom
wordcloud
, 生成詞雲matplotlib
, 生成詞雲圖片jieba
,顯示中文。#coding:utf-8 from wordcloud import WordCloud import matplotlib.pyplot as plt import jieba #生成詞雲 def create_word_cloud(filename): text= open("{}.txt".format(filename)).read() # 結巴分詞 wordlist = jieba.cut(text, cut_all=True) wl = " ".join(wordlist) # 設置詞雲 wc = WordCloud( # 設置背景顏色 background_color="white", # 設置最大顯示的詞雲數 max_words=2000, # 這種字體都在電腦字體中,通常路徑 font_path='/System/Library/Fonts/PingFang.ttc', height= 1200, width= 1600, # 設置字體最大值 max_font_size=100, # 設置有多少種隨機生成狀態,即有多少種配色方案 random_state=30, ) myword = wc.generate(wl) # 生成詞雲 # 展現詞雲圖 plt.imshow(myword) plt.axis("off") plt.show() wc.to_file('py_book.png') # 把詞雲保存下 if __name__ == '__main__': create_word_cloud('qq_word')
全部完整代碼已放github
github地址https://github.com/Jimmy9876/...