微博評論/話題爬蟲更新,用戶爬蟲仍可用

文章目的是爲了學習分享,嚴禁將代碼和所得數據商用,如追究責任概不負責。git

微博爬蟲終於又又又更新了。github

此次主要有三件事,且聽我一一道來web

微博評論爬蟲更新

突破了 100 頁、130 頁的限制(20200224 親自嘗試過 1 w+ count),可抓取指定微博的全部評論瀏覽器

代碼文件是 WeiboSuperCommentScrapy.py ,其在微博爬蟲項目 Github 倉庫的位置以下:微信

代碼須要改動的地方主要有三處,你的微博帳號,密碼和你想要爬取微博的 idcookie

爬取的微博評論會以 csv 文件的格式保存在項目 comment 文件夾下,文件名爲 {id}.csv,如已運行過一次,可將學習

WeiboLogin(username, password, cookie_path).login()spa

這一行代碼註釋掉,這一行代碼就是爲了自動獲取 cookie 的,如發現 cookie 過時可取消註釋。.net

自動獲取 cookie 的代碼來源於一位簡書做者 https://www.jianshu.com/p/8dc04794e35f線程

而後問題就在於怎麼找到你想要爬取微博的 id,爬取的是手機 m 站(https://m.weibo.cn),舉個例子,好比咱們想爬取熱門中的這條微博的全部評論

點開圖中紅線圈中的那個評論圖案,這個時候在瀏覽器地址欄上就能看到微博id

如你所見,微博 id 就是那一串數字,複製到程序中進行替換便可,若是想要一次性爬不少個微博的評論呢,能夠把變量 id 改爲 list 類型,也能夠從配置文件讀取,而後開個線程池便可,這些小的改動因爲每一個人須要不同,你們本身動手改改就行。

from concurrent.futures import ThreadPoolExecutor
for id in ids:
    ThreadPoolExecutor.submit(start_crawl,(get_cookies(),id))

運行代碼後,若是

WeiboLogin(username, password, cookie_path).login()

未取消註釋,將會彈出驗證碼,手動在控制檯輸入便可,該爬蟲能夠爬取一條微博下全部的評論及評論的回覆,如發現評論爬取完畢,可手動關掉程序,否則會一直嘗試,這個小 bug 在我寫文章時才發現,代碼已 commmit 到 github 了,不過不是什麼大問題,下次補上。

微博話題爬蟲更新

上一版的微博話題爬蟲就能支持按時間段爬取了,不過必須是以今天爲結束點,這一版的能夠支持任意時間段了:

WeiboTopicScrapy(keyword='巴黎聖母院大火',filter=0,start_time='20190414',end_time='20190515')

keyword 即爬取的話題,filter = 0 爬取全部微博,filter = 1 只爬取原創微博,start_timeend_time 便是微博發佈時所處的時間段。不能支持 時、分、秒等顆粒度搜索。

注意話題爬蟲和評論爬蟲相互獨立,話題爬蟲仍然須要設置 cookie,不知道怎麼設置 cookie?請參見我之前的文章:微博全站爬蟲修復更新啦!!!

用戶微博爬蟲仍然可用

很多同窗反饋爬取指定用戶的微博爬蟲失效了,並且都是 decode/encode 啥的錯誤,我本身又試了好幾回,發現仍然可用,99% 的緣由是 cookie 設置錯誤了。

至於 用戶微博爬蟲 的 exe 版本,我沒試了,我在上一次更新就說過,再也不維護 exe 版本,請你們運行代碼,Python 零基礎的同窗如發現 module not found,自行安裝第三方庫便可。

點擊閱讀原文直達項目 Github 地址。

本文分享自微信公衆號 - 月小水長(inspurer)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索