python爬蟲爬取QQ說說並且生成詞雲圖,回憶滿滿!
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學習裙:【五 八 八,零 九 零,九 四 二】不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給大家解惑。
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")
,再自動點擊 帳號密碼登錄 按鈕,自動輸入帳號密碼登錄,並且打開說說頁面,詳細代碼如下,這裡還是要推薦下小編的Python學習裙:【五 八 八,零 九 零,九 四 二】不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給大家解惑。
這個時候可以看到已經打開了qq說說的頁面了,注意部分空間打開之後會出現一個提示框,需要先模擬點擊事件關閉這個提示框
tm我以前竟然還有個黃鑽,好可怕~~,空間頭像也是那麼的年輕、主流...
同時因為說說內容是動態載入的,需要自動下拉滾動條,載入出全部的內容,再模擬點擊 下一頁 載入內容。具體代碼見下面。
BeautifulSoup爬取說說
F12查看內容,可以找到說說在feed_wrap這個
,裡面的
標籤數組裡面,具體每條說說內容在
class="bd"的
標籤中。
至此QQ說說已經爬取下來,並且保存在了qq_word文件里
接下來生成詞雲圖
詞雲圖
使用wordcloud包生成詞雲圖,pip install wordcloud
這裡還可以使用jieba分詞,我並沒有使用,因為我覺得qq說說的句子讀起來才有點感覺,個人喜好,用jieba分詞可以看到說說高頻次的一些詞語。
設置下wordcloud的一些屬性,注意 這裡要設置font_path屬性,否則漢字會出現亂碼。
這裡還有個要提醒的是,如果使用了虛擬環境的,不要在虛擬環境下運行以下腳本,否則可能會報錯 RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of python with pythonw. See Working with Matplotlib on OSX in the Matplotlib FAQ for more information. ,我就遇到了這種情況,deactivate 退出了虛擬環境再跑的
至此,爬取qq說說內容,並生成詞雲圖。
Python可以做什麼?
web開發和 爬蟲是比較適合 零基礎的
自動化運維 運維開發 和 自動化測試 是適合 已經在做運維和測試的人員
大數據 數據分析 這方面 是很需要專業的 專業性相對而言比較強
科學計算 一般都是科研人員 在用
機器學習 和 人工智慧 首先 學歷 要求高 其次 高數要求高 難度很大
推薦閱讀:
※17個新手常見Python運行時錯誤
※看完鹿晗秀恩愛,我們用Python分析回顧薛之謙與李雨桐互撕的江湖事
※用例2: CVE-2012-1823
※Python入門到實踐-了解Python