之前写了一个小玩具,放到了公网上面,平时几乎没什么人访问,最近流量突增,并且 来来回回就是那几个 ip 。
而且这几个 ip 直接访问的是接口,没有通过页面访问,大概是 50-60 个不同的 ip ,然后间隔一段时间访问(不是短时间内 猛刷接口),把 50-60ip 封了,又换了另外一批
而且间隔几分钟,突然请求一波,间隔几分钟,突然请求一波。看起来像是肉鸡 ip ,大家对于这种爬虫,有没有什么好的手段可以防止的?
我的初步想法是,每个 ip 一天之内访问 xx 此,用一个 map 或者 redis 记录一下,超过多少次就封禁,但怕容易封错,咨询一下大家的意见
1: ip: 16.163.109.41
2: ip: 18.162.143.19
3: ip: 16.162.55.213
4: ip: 18.166.70.237
5: ip: 43.198.17.104
6: ip: 18.166.67.209
7: ip: 18.162.191.172
8: ip: 18.162.133.58
9: ip: 16.162.255.138
10: ip: 16.162.160.93
1
summerwar 97 天前
直接访问接口,没有通过页面的,直接查 referer ,如果为空,则直接返回随机假数据
|
2
bigbigeggs OP @summerwar 看了下请求头,什么都有。UA referer 这些全构造了,像一个真人一样,头大
|
3
summerwar 97 天前
|
4
dilu 97 天前
最好的办法就是#3 说的 随机塞一些假数据进去,其他的所有封禁手段只是不断的提高爬虫门槛,反而让对方伪装的更无懈可击
还有一种方法就是如果你不在意你的数据,直接把数据打包提供一个下载链接 对方就不爬了 |
5
AliCN 97 天前
1.停接口。
2.接口加认证。 |
6
bigbigeggs OP @AliCN 接口不太可能停,认证指的是登录这种?
|
7
bigbigeggs OP @dilu 感谢,的确给些假数据,对方就比较迷惑了。的确可以试试这种方法,感觉可以作为迫不得已的一种屈服
|
8
falcon05 97 天前 via iPhone
加一层 cloudflare CDN ,请求头有个机器人评分,直接拒绝掉分数低的请求,还不行就启动 cloudflare 盾。
|
9
Rocketer 97 天前 via iPhone
蜜罐比封禁好使,可疑请求就给他假数据,无规律的那种。这有两个好处——
对误伤的真人来说,内容还是有的,只是看着很奇怪,他会换一个继续看。 对真的爬虫来说,这就是汤里的老鼠屎,他除非上真人逐条看,否则识别不出哪些是假数据,导致整个采集结果不敢用。 |
10
bqzzd 96 天前
@bigbigeggs #7 封 IP 是很容易误伤的,反爬也只是增加爬虫的成本,换句话说,人家想搞到你数据,只要你开放怎么都能搞到,所以建议 OP 放宽心,用些成熟的比如 cloudflare 网站护盾、或者一些验证码之类的比较省心,剩下的爬虫只要不影响网站运营就行。另外一些常见的防护:
1.网站不展示全部数据 2.签名验证 3.网站 js 混淆,接口、数据加密 4.验证码、第三方防护 等等 |
11
daxin945 96 天前
找个开源 waf 套上
|