微博全站爬蟲修復更新啦!!!
- 2019 年 12 月 4 日
- 筆記
說一聲抱歉,當時那段時間我實在太忙,就沒有立刻解決,但是記在備忘錄上,但是今天下午終於可以有空閑了,就著手解決了這個問題;問題主要是由微博介面和網頁結構的變化引起的,現將有關修改過程及結果修改如下;同時會詳介紹如何獲取 cookies 。
用戶微博模組介面變化
原來的介面是
query_data = { 'keyword': self.keyword, 'suser': '找人' } search_response = requests.post(url='https://weibo.cn/search/', headers=self.headers, data=query_data,verify=False)
由於是抽取的類中的程式碼段,有些變數見名知意即可,不需要追究其值
後面我通過抓包發現,其介面變化為
query_data = { 'keyword': self.keyword, 'suser': '2' } search_response = requests.post(url='https://weibo.cn/find/user', headers=self.headers, data=query_data,verify=False)
可以發現,無論是介面的 URL 地址還是介面參數均有變化,但是看上去又不像是針對爬蟲的,因為發爬的技術並沒有升級,可能是業務邏輯的整合,只能這樣猜測了。
主題微博模組介面變化
原來的介面是
res = requests.get(url='https://weibo.cn/search/mblog?keyword={}'.format(self.keyword), headers=self.headers,verify=False)
現改成了
data = { 'page': 1, 'keyword': self.keyword } res = requests.post(url='https://weibo.cn/search/mblog', headers=self.headers, data=data)
介面請求方式由 get 改成了參數隱秘性更好的 post。
如何獲取 cookies
cookies 是什麼,這裡不引經據典了,一句話,cookies 是客戶機(也就是你的 Chrome、FireFox 等瀏覽器)維持會話狀態的一段字元串資訊,微博就應用了這種技術。
怎麼獲取 cookies 呢?
打開微博登陸首頁
https://passport.weibo.cn/signin/login?entry=mweibo&r=https%3A%2F%2Fweibo.cn%2F&backTitle=%CE%A2%B2%A9&vt=
F12 打開開發者工具(Mac OS 類似),並切換到 NetWork 標籤頁,如下

一切準備就緒後,點擊頁面上的登錄按鈕,按如下方式獲得 cookies

如何獲得最新程式碼
最新程式碼已更新在 Github:
https://github.com/Python3Spiders/