python小白也能夠分分鐘爬取微博數據,並生成有個性的詞雲,你get到了嗎?

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

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

很早前寫過一篇怎麼利用微博數據製做詞雲圖片出來,以前的寫得不完整,並且只能使用本身的數據,如今從新整理了一下,任何的微博數據均可以製做出來,放在今天應該比較應景。python

 

 

本文教你怎麼用Python快速建立出有心意詞雲,即便是Python小白也能分分鐘作出來。linux

準備工做web

本環境基於Python3,理論上Python2.7也是可行的,先安裝必要的第三方依賴包:數據庫

 

 

requirement.txt文件中包含上面的幾個依賴包,若是用pip方式安裝失敗,推薦使用Anaconda安裝編程

pip install -r requirement.txtjson

第一步:分析網址flask

打開微博移動端網址 ,找到女神的微博ID,進入她的微博主頁,分析瀏覽器發送請求的過程後端

 

 

打開 Chrome 瀏覽器的調試功能,選擇 Network 菜單,觀察到獲取微博數據的的接口是 ,後面附帶了一連串的參數,這裏面有些參數是根據用戶變化的,有些是固定的,先提取出來。

 

 

再來分析接口的返回結果,返回數據是一個JSON字典結構,total 是微博總條數,每一條具體的微博內容封裝在 cards 數組中,具體內容字段是裏面的 text 字段。不少干擾信息已隱去。

 

 

第二步:構建請求頭和查詢參數

分析完網頁後,咱們開始用 requests 模擬瀏覽器構造爬蟲獲取數據,由於這裏獲取用戶的數據無需登陸微博,因此咱們不須要構造 cookie信息,只須要基本的請求頭便可,具體須要哪些頭信息也能夠從瀏覽器中獲取,首先構造必需要的請求參數,包括請求頭和查詢參數。

 

 

 

 

uid是微博用戶的id,

· containerid雖然不什麼意思,但也是和具體某個用戶相關的參數

· page 分頁參數

 

 

 

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

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

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

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

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

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

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

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

第三步:構造簡單爬蟲

經過返回的數據能查詢到總微博條數 total,爬取數據直接利用 requests 提供的方法把 json 數據轉換成 Python 字典對象,從中提取出全部的 text 字段的值並放到 blogs 列表中,提取文本以前進行簡單過濾,去掉無用信息。順便把數據寫入文件,方便下次轉換時再也不重複爬取。

 

 

 

 

第四步:分詞處理並構建詞雲

爬蟲了全部數據以後,先進行分詞,這裏用的是結巴分詞,按照中文語境將句子進行分詞處理,分詞過程當中過濾掉中止詞,處理完以後找一張參照圖,而後根據參照圖經過詞語拼裝成圖。

 

 

最終效果圖:

 

 

 

 

哪些人比較適合學Python

1.編程菜鳥新手:很是喜好編程,之後想從事相關工做,可是零基礎,不知道入門選擇什麼編程語言的朋友,實際上是最適合選擇Python編程語言的。

2.網站前端的開發人員:日常只關注div+css這些頁面技術,不少時候其實須要與後端開發人員進行交互的;

3.SEO人員:不少SEO優化的時候,苦於不會編程,一些程序上面的問題,得不到解決,只能作作簡單的頁面優化。 如今學會Python以後,你和我同樣均可以編寫一些查詢收錄,排名,自動生成網絡地圖的程序,解決棘手的SEO問題。

4.在校學生:想有一技之長,或者是自學編程的愛好者,但願快速入門,少走彎路,均可以選擇Python語言。

我有一個微信公衆號,常常會分享一些python技術相關的乾貨;若是你喜歡個人分享,能夠用微信搜索「python語言學習」關注。

歡迎你們加入千人交流答疑羣:588+090+942

相關文章
相關標籤/搜索