首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
拉勾
V2EX  ›  程序员

发一段 Nginx 屏蔽各无效爬虫的配置上来,欢迎大家补充完善。

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

    最近发现大量来自欧美的请求,高峰每秒 58 个请求里,有 52 个都是这些爬虫。

    它们爬的速度快,范围广,又不能产出实际效益,完全可以屏蔽掉。

    下面是我的配置:

    if ($http_user_agent ~* "AhrefsBot|MJ12bot|hubspot|opensiteexplorer|leiki|webmeup") {
            return 403;
    }
    

    欢迎大家一起来补充完善:

    1. 各爬虫的关键词;
    2. 不同 Server 的配置。
    第 1 条附言  ·  190 天前
    23 回复  |  直到 2018-09-15 19:12:43 +08:00
        1
    asilin   190 天前
    return 状态可以改成 444。
        2
    snal123   190 天前 via iPhone
    楼主你能解释下写的这个有啥用?
        3
    airyland   190 天前
    为什么不直接改 robots 规则
        4
    CEBBCAT   190 天前 via Android
    楼上+1
        5
    1v9   190 天前
    @snal123

    首先需要这个东西,https://github.com/alibaba/nginx-http-user-agent

    然后看谁不爽就把谁放进去,可以返回状态码也可以转向其他的地方。
        6
    SukkaW   190 天前   ♥ 5
    FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms
        7
    nicoljiang   190 天前
    @airyland
    @CEBBCAT
    1. 不一定所有的都支持
    2. 不会立马生效
        8
    nicoljiang   190 天前
    @SukkaW
        9
    buffge   190 天前
    既然做爬虫了,还不改 user-agent? 我一般都是用谷歌浏览器 ua.
        10
    nicoljiang   190 天前
    @buffge 倒是不认为 UA 能解决所有问题,但理论上比 robots.txt 的适用性更广,且更高效直接。这个观点应该没问题。
        11
    nicoljiang   190 天前
    @asilin 学习了
        12
    xiaoz   190 天前 via Android
    @airyland 万一有些爬虫不遵守 robots.txt 呢
        13
    jiabing520a   190 天前
    LMAO|Hakai|Gemini|Wappalyzer|masscan|crawler4j|Mappy|Center|eright|aiohttp|MauiBot|Crawler|researchscan|Dispatch|AlphaBot|Census|ips-agent|NetcraftSurveyAgent|ToutiaoSpider|EasyHttp|Iframely|sysscan|fasthttp|muhstik|DeuSu|mstshash|HTTP_Request|ExtLinksBot|package|SafeDNSBot|CPython|SiteExplorer|SSH|python-requests|MegaIndex|BUbiNG|CCBot|NetTrack|Digincore|aiHitBot|SurdotlyBot|null|SemrushBot|Test|Copied|ltx71|Nmap|DotBot|AdsBot|InetURL|Pcore-HTTP|PocketParser|Wotbox|newspaper|DnyzBot|redback|PiplBot|SMTBot|WinHTTP|Auto Spider 1.0|GrabNet|TurnitinBot|Go-Ahead-Got-It|Download Demon|Go!Zilla|GetWeb!|GetRight|libwww-perl|Cliqzbot|MailChimp|SMTBot|Dataprovider|XoviBot|linkdexbot|SeznamBot|Qwantify|spbot|evc-batch|zgrab|Go-http-client|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|EasouSpider|LinkpadBot|Ezooms|^$
        14
    Leigg   190 天前 via iPhone
    既然是反爬虫,什么 ua,robot 规则都是基本的,如果不是重要的数据,再限制单 ip 访频就足够。
        15
    Xrong   190 天前
        16
    longyujin9   190 天前
    if ($http_user_agent !~* (Chrome|Opera|Safari|Edge|Firefox|Gecko)) {
    return 444;
    }

    只允许浏览器 ua 进行访问
        17
    nicoljiang   190 天前
    @Leigg 嗯 也有道理。但爬虫名还是不能少,你也可以补充一下 robots 的版本。

    @longyujin9 你们都知道 444

    @Xrong 好东西,star
        18
    nicoljiang   190 天前
    @jiabing520a 真全。不过屏蔽了一些 WinHTTP、HttpClient 之类的,恐怕使用的时候得具体看看场景。
        19
    Joyboo   190 天前
    多数框架都会判断是否爬虫请求的,只要看过源码的大概都知道吧
        20
    nicoljiang   190 天前
    @Joyboo 你指的是什么框架?
        21
    buffge   190 天前
    @nicoljiang 我觉得你这是防蜘蛛,而不是屏蔽爬虫
        22
    nicoljiang   189 天前
    @buffge 不管是 Spider 还是 Crawler,实际上指的都是一类的东西。
        23
    mingyun   186 天前
    @longyujin9 header 里伪造的 ua 可以通过吗
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2797 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 11:54 · PVG 19:54 · LAX 04:54 · JFK 07:54
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1