用“严防死守”这4个字来形容就够了。防采、防爬虫。
1、没有UA直接屏蔽+自动创建黑名单;
2、针对白名单爬虫自动放行,如果骗过,下一步是通过行为特征或开启反查DNS识别伪造爬虫,假爬虫自动创建黑名单;
3、前面都过了就是黑名单;
4、2次访问不能创建cookie的机器限流+自动创建黑名单;
5、同台机器切换IP超过阈值,被视为非正常用户,直接限流+自动创建黑名单;
6、session 流量,是通过同个session ID在限定时间内的访问次数限流+自动创建黑名单;
以上功能都有开关,部分功能默认打开。
目前上面的6个功能,ChatGPT 都过不去,在已有的站点上已经发现多个AI爬虫被限流。它们仍然想要爬取,会通过瞬间上千不同IP、不同UA的高并发访问的方式来爬取,依然无法穿透。也许未来AI会识别,不过目前我还没有测试 ChatGPT 的代理模式,可能代理模式可以穿透,也只是可能。
其实路由中间件 ThrottleMiddleware 除了以上6个功能,还有个“IP 令牌桶限流功能”,主要是为每个 IP 分配一个“桶”,桶里按固定速率补充令牌,请求要消耗令牌;有令牌就放行,没有就拒绝,从而保证平均速率受控,又允许短时突发。