網絡上有很多關於Python網絡爬蟲,但大都是Python2版本,而Python3的版本較少,如果有也會經常有不明就裡的錯誤。因此小編綜合了多個來源程序,終於親測成功,僅以此分享給需要的朋友。
前期準備
本來是想用PC端Sina Weibo API來獲取微博內容,但現在新浪微博規定限制太多。一下是注意事項:
該項規定出臺,導致你只能爬自己的最新的5條記錄,這有什麼用,因此果斷放棄。改為爬取移動端的微博,因為移動端的微博可以分頁爬取,這就可以一次爬取所有微博內容,這就方便很多。
打開移動端微博
網址是:https://m.weibo.cn;瀏覽器使用的是:Chrome。
用自己賬號登陸
請用自己的賬號登陸,登陸後,按F12,會出現以下內容
找到m.weibo.cn--Headers--Cookie,把cookie複製到代碼中的#your cookie處,待用。
獲取你要爬取的用戶ID
方法是打開用戶微博主頁,裡邊有一個u/XXXXXX(一串數字);這串數字就是該用戶的ID。
以范冰冰為例,uid=3952070245
前期工作已經準備完成,後邊開始擼代碼了。
載入需要Python模塊
Python需要的模塊如下,這部分不是重點,因此就不細講,大家可以搜索一下如何下載相關模塊。簡單的就是pip install 模塊名。或者從官網上下載模塊,本地安裝。
輸入用ID和設置Cookie
本次爬取的是范冰冰原創微博(因此轉發的不在此列),cookie請大家使用自己的地址。另外pageNum是總共頁數,范冰冰截止目前為56頁。urllist_set儲存爬取的url地址。
爬取具體微博內容和圖片
為了快速展示,本次僅爬取了前4頁內容。
爬取內容保存
將爬取的微博內容儲存在到相關目錄,本次儲存在以uid的文件中。需要注意的是因為Python3升級後,寫入文件不支持‘str’,因此需要轉換以下,用bytes函數轉換成字節。
微博內容結果如下
同時也將爬取的相關圖片的URL地址保存下來。
圖片URL相關結果如下:
將爬取的圖片下載保存本地。
圖片爬取結果如下,部分出現錯誤,可能是網絡的原因,可將錯誤圖片地址多爬幾次。
寫在後邊的話
爬蟲作為數據採集的重要工具,為後期的大數據分析做好了基礎準備,因此有必要掌握下爬蟲技術。本篇僅是一個入門級別,其中還有更高級的框架Scrape,用代理IP到動態爬取,反偵察等。另外,注意的是【內容僅是技術分享,不做其他用途】