被爬虫爬了,大家反爬一般有什么好的手段措施

97 天前
 bigbigeggs

之前写了一个小玩具,放到了公网上面,平时几乎没什么人访问,最近流量突增,并且 来来回回就是那几个 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 
1190 次点击
所在节点    问与答
11 条回复
summerwar
97 天前
直接访问接口,没有通过页面的,直接查 referer ,如果为空,则直接返回随机假数据
bigbigeggs
97 天前
@summerwar 看了下请求头,什么都有。UA referer 这些全构造了,像一个真人一样,头大
summerwar
97 天前
@bigbigeggs redis 记录下,超过 20 次或者多少次,随机返回 N 次随机数据,要半假那种

感觉反爬想简单就弄点假数据塞进去,让他怀疑没法知道数据真假,导致放弃
dilu
97 天前
最好的办法就是#3 说的 随机塞一些假数据进去,其他的所有封禁手段只是不断的提高爬虫门槛,反而让对方伪装的更无懈可击

还有一种方法就是如果你不在意你的数据,直接把数据打包提供一个下载链接 对方就不爬了
AliCN
97 天前
1.停接口。
2.接口加认证。
bigbigeggs
97 天前
@AliCN 接口不太可能停,认证指的是登录这种?
bigbigeggs
97 天前
@dilu 感谢,的确给些假数据,对方就比较迷惑了。的确可以试试这种方法,感觉可以作为迫不得已的一种屈服
falcon05
97 天前
加一层 cloudflare CDN ,请求头有个机器人评分,直接拒绝掉分数低的请求,还不行就启动 cloudflare 盾。
Rocketer
97 天前
蜜罐比封禁好使,可疑请求就给他假数据,无规律的那种。这有两个好处——

对误伤的真人来说,内容还是有的,只是看着很奇怪,他会换一个继续看。

对真的爬虫来说,这就是汤里的老鼠屎,他除非上真人逐条看,否则识别不出哪些是假数据,导致整个采集结果不敢用。
bqzzd
96 天前
@bigbigeggs #7 封 IP 是很容易误伤的,反爬也只是增加爬虫的成本,换句话说,人家想搞到你数据,只要你开放怎么都能搞到,所以建议 OP 放宽心,用些成熟的比如 cloudflare 网站护盾、或者一些验证码之类的比较省心,剩下的爬虫只要不影响网站运营就行。另外一些常见的防护:
1.网站不展示全部数据
2.签名验证
3.网站 js 混淆,接口、数据加密
4.验证码、第三方防护
等等
daxin945
96 天前
找个开源 waf 套上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1072406

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX