屏蔽采集器、以及垃圾搜索引擎的原因,除了【公司内部站点,不希望内容被搜索引擎爬取】外,还有以下几点:
基于以上需求,需要屏蔽这些采集器,以及垃圾爬虫。
对于Nginx来说,可以参考我的配置(根据需要增加删除):
1. 新建/etc/nginx/myconf/agent_deny.conf 文件,内容如下
#禁止Scrapy等工具的抓取
if ( $http_user_agent ~* (Scrapy|Curl|HttpClient|Python-urllib) ) {
return 403;
}
#禁止指定UA及UA为空的访问
if ($http_user_agent ~* "FeedDemon|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Swiftbot|ZmEu|oBot|jaunty|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|DotBot|Ezooms|^$" ) {
return 403;
}
#禁止垃圾蜘蛛爬取,这里根据自己需要是否使用
if ($http_user_agent ~ "qihoobot|Baiduspider|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot")
{
return 403;
}
2. 在需要限制的站点配置文件里包含该文件
server {
server_name rangotec.com www.rangotec.com;
# 其他略....
location / {
# 屏蔽采集站
include /etc/nginx/myconf/agent_deny.conf;
# 其他略....
}
# ...
}
3. 测试效果如下,如果程序使用Python-urllib 来采集,则返回403禁止访问。
$ curl -A 'Python-urllib' https://rangotec.com
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
效果是 wordpress 上每天几百条的垃圾评论也变为了零。
本文适合纯靠爱发电的博主。