我向b站發送post請求,想要返回1000個用戶的數據,開始是正常獲取到,但是200個開始就得不到了,是不是被反爬了?


很明顯,你的爬蟲觸發了別人的反爬蟲機制,這多半是你的爬蟲肆無忌憚的讀取別人的數據造成的,解決的方法有三種,

一,降低爬取速度,儘可能模擬一個人瀏覽網頁的速度,這樣會使網站的反爬蟲機制不那麼容易觸發。但這也不是萬全之策。有很多網站限制了用戶的訪問時長,一般的話是會讓你再重新登錄一次,你可以嘗試加入訪問TOKEN的更新。

二,這個方法和訪問TOKEN更新是一樣的,有些網站會在你頻繁訪問的時候悄悄地把訪問TOKEN銷毀,如果你沒有及時的更新訪問TOKEN,後面很有可能訪問到的都是錯誤頁,當然這個方法能解決的網站很少,大部分都是直接IP黑名單。

三,多租用幾個IP,這時候訪問起來看上去就不會那麼頻繁。

寫爬蟲最好不要寫多線程,經驗告訴我,爬的多死的快23333,能用IP池就用IP池


B站的反爬機製為限制頁面訪問,客戶端最多隻能訪問前5頁,每個頁面返回的json有20個用戶數據對象,所以想要返回1000個用戶的數據的時候,一開始是可以正常獲取到,但是200個開始就得不到了,就是這個原因了。

B站的介面反爬蟲機製為對IP的接入頻率,上限大概為 150~200 次/分鐘。對於這種反爬機制,通常的解決方法是降低爬蟲爬取頻率,爬的時候打槍的不要,悄悄的進村~~

另外也可以使用IP代理池,不過考慮到免費的IP一般也不太好使,付費的IP一般也不怎麼想買。所有用第一種方法算是比較經濟、合理的。


反爬了,加入代理試試


多半是有反扒策略,小心IP被封。


是的,之前我也寫過b站爬蟲,也是遇到了限制。最後搞分散式來解決的


推薦閱讀:
相關文章