我向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站爬虫,也是遇到了限制。最后搞分散式来解决的


推荐阅读:
相关文章