Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

編程語言 微博 網絡爬蟲 Python 極數蝸牛 2017-06-13

網絡上有很多關於Python網絡爬蟲,但大都是Python2版本,而Python3的版本較少,如果有也會經常有不明就裡的錯誤。因此小編綜合了多個來源程序,終於親測成功,僅以此分享給需要的朋友。

前期準備

本來是想用PC端Sina Weibo API來獲取微博內容,但現在新浪微博規定限制太多。一下是注意事項:

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

該項規定出臺,導致你只能爬自己的最新的5條記錄,這有什麼用,因此果斷放棄。改為爬取移動端的微博,因為移動端的微博可以分頁爬取,這就可以一次爬取所有微博內容,這就方便很多。

打開移動端微博

網址是:https://m.weibo.cn;瀏覽器使用的是:Chrome。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

用自己賬號登陸

請用自己的賬號登陸,登陸後,按F12,會出現以下內容

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

找到m.weibo.cn--Headers--Cookie,把cookie複製到代碼中的#your cookie處,待用。

獲取你要爬取的用戶ID

方法是打開用戶微博主頁,裡邊有一個u/XXXXXX(一串數字);這串數字就是該用戶的ID。

以范冰冰為例,uid=3952070245

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

前期工作已經準備完成,後邊開始擼代碼了。

載入需要Python模塊

Python需要的模塊如下,這部分不是重點,因此就不細講,大家可以搜索一下如何下載相關模塊。簡單的就是pip install 模塊名。或者從官網上下載模塊,本地安裝。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

輸入用ID和設置Cookie

本次爬取的是范冰冰原創微博(因此轉發的不在此列),cookie請大家使用自己的地址。另外pageNum是總共頁數,范冰冰截止目前為56頁。urllist_set儲存爬取的url地址。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

爬取具體微博內容和圖片

為了快速展示,本次僅爬取了前4頁內容。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

爬取內容保存

將爬取的微博內容儲存在到相關目錄,本次儲存在以uid的文件中。需要注意的是因為Python3升級後,寫入文件不支持‘str’,因此需要轉換以下,用bytes函數轉換成字節。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

微博內容結果如下

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

同時也將爬取的相關圖片的URL地址保存下來。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

圖片URL相關結果如下:

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

將爬取的圖片下載保存本地。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

圖片爬取結果如下,部分出現錯誤,可能是網絡的原因,可將錯誤圖片地址多爬幾次。

Python3:一個簡單入門的微博網絡爬蟲(以范冰冰為例)

寫在後邊的話

爬蟲作為數據採集的重要工具,為後期的大數據分析做好了基礎準備,因此有必要掌握下爬蟲技術。本篇僅是一個入門級別,其中還有更高級的框架Scrape,用代理IP到動態爬取,反偵察等。另外,注意的是【內容僅是技術分享,不做其他用途】

相關推薦

推薦中...