Nginx可以根据User-Agent过滤请求,我们只需要在需要URL入口位置通过一个简单的正则表达式就可以过滤不符合要求的爬虫请求:

...
location / {
    if ($http_user_agent ~* "python|curl|java|wget|httpclient|okhttp") {
        return 503;
    }
    # 正常处理
    ...
}
...

变量$http_user_agent是一个可以直接在location中引用的Nginx变量。~*表示不区分大小写的正则匹配,通过python就可以过滤掉80%的Python爬虫。

已有 3 条评论
  1. itmrdlojhd
    itmrdlojhd :

    内容的丰富性和深度让人仿佛置身于知识的海洋,受益匪浅。

  2. bceqrohvzr
    bceqrohvzr :

    故事线完整,伏笔巧妙,结局耐人寻味。

  3. wuptvwxbcu
    wuptvwxbcu :

    韵律感强烈,朗读时如音乐流淌。