如何设计一个健壮而且厉害防爬策略

0.首先你得有一个能扛住爬虫的可以计算黑白名单的数据库,当然我们选择redis,单台 qps 达到20000+,杠杠的,然后你得在不影响业务的情况下来验证爬虫,我们可以通过异步读取nginx的access.log进行校验,前台只需要在关键的功能点判断一下ip是否在黑名单即可

1. 同一个ip在某个功能点一秒两次请求算爬虫,将ip加入黑名单,防住大部分的爬虫

2 .截取一段请求列表,如果某一个useragent出现的频率远远大于该正常该浏览器占有的比例,全部算爬虫,这里容易误杀,可以通过一个强壮的验证码来避免,一定要强壮,要不反而会方便爬虫!这个方法已经验证,特别厉害,特别是半夜没人的时候,杀的爬虫屁滚尿流

3.其他有针对性策略,通过user-agent  referer,等特点,直接永久封禁ip

例如 user-agent 是python urllib,httpclient,等明显的 爬虫的http库等,referer不符合页面跳转逻辑等

4.目前验证码已经很难防住现在的爬虫了,随便去买个第三方的服务,再复杂的验证码也能搞定,现在神经网络太厉害了,

目前的策略是通过手机来解锁被封禁的ip

5.针对2的,如果有的人随机换user-agent,那么就再来一条策略,如果半个小时内,同一个ip user-agent超过5种,永久封禁




猜你喜欢

转载自blog.csdn.net/qiushi888/article/details/79007623