useragent(useragent检测)

很多小伙伴留言想了解关于useragent的一些详细内容,下面是()小编整理的与useragent相关的信息分享给大家,希望对大家有所帮助呢。

概述

每个网站通常都会遇到很多非搜索引擎的爬虫,这些爬虫大部分都是用于内容采集或是初学者所写,它们和搜索引擎的爬虫不一样,没有频率控制,往往会消耗大量服务器资源,导致带宽白白浪费了。下面介绍下怎么通过nginx来屏蔽网络爬虫的方法。

附一张没啥用的图:

浏览器输入URL后HTTP请求的完整过程

思路

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中禁止屏蔽网络爬虫server {listen 80;server_name _;client_max_body_size 1024m;ssi on;ssi_silent_errors on; if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mo**le|Googlebot-Image|Mediapartners-Google|Ad**ot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") { return 403; }location /XXX { ........... }

配置后重启可以用curl 测试一下

curl -I -A "qihoobot" .gzwise.top总结

上面主要是介绍通过User-Agent过滤网络爬虫请求的一个方式,大家有空也可以自己测试一下,后面会分享更多关于nginx方面内容,感兴趣的朋友可以关注下!

原文链接:,转发请注明来源!