1. 程式人生 > >python爬蟲爬取QQ說說並且生成詞雲圖,回憶滿滿!

python爬蟲爬取QQ說說並且生成詞雲圖,回憶滿滿!

運維開發 網絡 分析 matplot 容易 jieba 編程語言 提示框 然而

Python(發音:英[?pa?θ?n],美[?pa?θɑ:n]),是一種面向對象、直譯式電腦編程語言,也是一種功能強大的通用型語言,已經具有近二十年的發展歷史,成熟且穩定。它包含了一組完善而且容易理解的標準庫,能夠輕松完成很多常見的任務。它的語法非常簡捷和清晰,與其它大多數程序設計語言不一樣,它使用縮進來定義語句。

Python支持命令式程序設計、面向對象程序設計、函數式編程、面向切面編程、泛型編程多種編程範式。與Scheme、Ruby、Perl、Tcl等動態語言一樣,Python具備垃圾回收功能,能夠自動管理存儲器使用。它經常被當作腳本語言用於處理系統管理任務和網絡程序編寫,然而它也非常適合完成各種高級任務。Python虛擬機本身幾乎可以在所有的作業系統中運行。使用一些諸如py2exe、PyPy、PyInstaller之類的工具可以將Python源代碼轉換成可以脫離Python解釋器運行的程序。

技術分享圖片

自學過一段時間的python,用django自己做了個網站,也用requests+BeautifulSoup

爬蟲過些簡單的網站,周末研究學習了一波,準備爬取QQ空間的說說,並把內容存在txt中,讀取生成雲圖。

好久不登qq了,空間說說更是幾年不玩了,裏面滿滿的都是上學時候的回憶,看著看著就笑了,笑著笑著就...哈哈哈~~

無圖言虛空

技術分享圖片

當年的我還是那麽風華正茂、幽默風趣...

言歸正傳,本次使用的是

selenium

模擬登錄+

BeautifulSoup4

爬取數據+

wordcloud

生成詞雲圖

BeautifulSoup安裝

pip install beautifulsoup4

這裏有beautifulsoup4 的 官方文檔

還需要用到解析器,我選擇的是

html5lib

解析器

pip install html5lib

下表列出了主要的解析器,以及它們的優缺點:

技術分享圖片

selenium模擬登錄

使用selenium模擬登錄QQ空間,安裝

pip install selenium

我用的是chrom瀏覽器,

webdriver.Chrome()

,獲取Chrome瀏覽器的驅動。

這裏還需要下載安裝對應瀏覽器的驅動,否則在運行腳本時,會提示

chromedriver executable needs to be in PATH

錯誤,用的是mac,網上找的一篇下載驅動的文章

同理window的也一樣,下載對應的驅動,解壓後,將下載的**.exe 放到Python的安裝目錄,例如 D:\python 。 同時需要將Python的安裝目錄添加到系統環境變量裏。

技術分享圖片

python學習路線分三大階段:基礎-進階-框架-項目實戰

基礎第一階段:基礎Python的理解。基礎第二階段面對對象編程(註重編程能力)

基礎第三階段面向對象“設計思想”-封裝-繼承。基礎第四階段python高級專題。

進階班第一階段:linux基礎。第二:python web工具。第三python部署工具。

第四關系型數據庫。第五Python web框架基礎原理。

框架階段.python web開發第一階段web.py。基礎第二Django基礎。

第三flask基礎。第四tornado基礎,

項目實戰:個人博客系統-微信開發-企業OA系統=網盤系統。

qq登錄頁http://i.qq.com,利用webdriver打開qq空間的登錄頁面

driver = webdriver.Chrome()driver.get("http://i.qq.com")

技術分享圖片

打開之後右擊檢查查看頁面元素,發現帳號密碼登錄在

login_frame

裏,先定位到所在的frame,

driver.switch_to.frame("login_frame")

,再自動點擊 帳號密碼登錄 按鈕,自動輸入帳號密碼登錄,並且打開說說頁面,詳細代碼如下,

技術分享圖片

這個時候可以看到已經打開了qq說說的頁面了,註意部分空間打開之後會出現一個提示框,需要先模擬點擊事件關閉這個提示框

技術分享圖片

tm我以前竟然還有個黃鉆,好可怕~~,空間頭像也是那麽的年輕、主流...

技術分享圖片

同時因為說說內容是動態加載的,需要自動下拉滾動條,加載出全部的內容,再模擬點擊 下一頁 加載內容。具體代碼見下面。

BeautifulSoup爬取說說

F12查看內容,可以找到說說在feed_wrap這個

,裏面的