码迷,mamicode.com
首页 > 其他好文 > 详细

使用Nginx过滤网络爬虫

时间:2018-08-30 19:53:20      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:variable   索引   表示   服务   art   ber   gen   控制   ret   

原文:https://www.liaoxuefeng.com/article/001509844125769eafbb65df0a04430a2d010a24a945bfa000

 

现在的网络爬虫越来越多,有很多爬虫都是初学者写的,和搜索引擎的爬虫不一样,他们不懂如何控制速度,结果往往大量消耗服务器资源,导致带宽白白浪费了。

其实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爬虫。

感觉本站内容不错,读后有收获?

使用Nginx过滤网络爬虫

标签:variable   索引   表示   服务   art   ber   gen   控制   ret   

原文地址:https://www.cnblogs.com/shihaiming/p/9561933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!