• 请不要在回答技术问题时复制粘贴 AI 生成的内容
showecho
V2EX  ›  程序员

写了个简单防采集,结果自己骗自己

  •  
  •   showecho · Feb 17, 2019 · 5023 views
    This topic created in 2816 days ago, the information mentioned may be changed or developed.
    Protected function _initialize(){
    if($_COOKIE['ban']){
    $this->redirect('verify/code');
    }
    $cookie=set_cookie('index');// 函数创建 cookie
    if(!$cookie || $cookie>20){
    $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
    cookie('url',$url,120);
    cookie('ban',1,1800);
    }
    }
    我的本意是建立 cookie,如果 cookie 不存在,或者当前页面控制器命名的 cookie 两分钟超过 20 次访问就跳验证码,以为这样就可以防止简单的采集,但是我刚本地 wamp 用 file_get_contents(url),就可以无限制采集,真是太菜了,实在不好意思说出来。

    求一个简单的防采集代码,可以防住别人单 ip 连续采集,或者不同 ip 高频率采集,环境是 windows 2008,IIS 7.0,程序是 PHP。
    12 replies  •  2019-02-18 09:31:46 +08:00
    opengps
    opengps
    Feb 17, 2019
    1
    首先,采集没法完全防御
    cookie 是客户端的,必然行不通,得从服务端下手,控制单 ip 访问频率
    验证码虽然没办法完全防御,但是可以过滤大部分小白采集,要求输入验证码看完整内容等做法
    tomczhen
    tomczhen
    Feb 17, 2019❤️1
    3
    没看到是 IIS 7,不过应该用 https://www.iis.net/downloads/microsoft/dynamic-ip-restrictions 也可以。
    d5
    d5
    Feb 17, 2019
    4
    可以结合 IP 限制、headers 头校验、字体替换、人机验证大法,筛选掉一部分基础功不扎实的爬虫开发者。但是总归对搜索引擎不友好
    wszgrcy
    wszgrcy
    Feb 17, 2019 via Android
    5
    其实真要想抓,puppeteer 会抓的怀疑人生吧?(当然效率不能恭维)
    mooncakejs
    mooncakejs
    Feb 17, 2019
    6
    最简单的就算 ip 限流,大于阈值弹验证码。
    coolcoffee
    coolcoffee
    Feb 17, 2019
    7
    动态 ip 服务了解一下
    cdwyd
    cdwyd
    Feb 17, 2019 via Android
    8
    假数据才是反爬利器,谁用谁知道。
    mywaiting
    mywaiting
    Feb 17, 2019❤️1
    9
    防采集这样的手段太 low b 而且没有效果

    真正的好的防采集,是设置阈值,然后区分搜索引擎的来源(这个很有技术含量)和其他爬虫来源

    再然后,搜索引擎就返回真实的数据,其他爬虫来源嘛,终极手段是随机返回脏数据,是的,我就是传说中的反爬贱货中的战斗机,随机返回看起来是真实数据的脏数据
    smallgoogle
    smallgoogle
    Feb 18, 2019
    10
    防采集真的没有什么好办法,都是依靠阈值和区分策略吧。。。毕竟数据都是用户肉眼可见的东西,就算你控制 IP 了,真的要爬你,动态 IP,代理 IP 都是起飞的。
    DonaidTrump
    DonaidTrump
    Feb 18, 2019 via iPhone
    11
    拨号 vps 了解一下
    iiusky
    iiusky
    Feb 18, 2019
    12
    ...dz 防采集插件可以参考一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4899 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 06:50 · PVG 14:50 · LAX 22:50 · JFK 01:50
    ♥ Do have faith in what you're doing.