V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bigbigeggs
V2EX  ›  问与答

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

  •  
  •   bigbigeggs · 69 天前 · 1155 次点击
    这是一个创建于 69 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    对真的爬虫来说,这就是汤里的老鼠屎,他除非上真人逐条看,否则识别不出哪些是假数据,导致整个采集结果不敢用。
    bqzzd
        10
    bqzzd  
       69 天前
    @bigbigeggs #7 封 IP 是很容易误伤的,反爬也只是增加爬虫的成本,换句话说,人家想搞到你数据,只要你开放怎么都能搞到,所以建议 OP 放宽心,用些成熟的比如 cloudflare 网站护盾、或者一些验证码之类的比较省心,剩下的爬虫只要不影响网站运营就行。另外一些常见的防护:
    1.网站不展示全部数据
    2.签名验证
    3.网站 js 混淆,接口、数据加密
    4.验证码、第三方防护
    等等
    daxin945
        11
    daxin945  
       69 天前
    找个开源 waf 套上
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3374 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:36 · PVG 19:36 · LAX 03:36 · JFK 06:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.