为了封垃圾蜘蛛特意按照网上的教程弄了下下面的东西,
下面代码写入了agent_deny.conf文件
禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
禁止指定UA及UA为空的访问
if ($http_user_agent ~ "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|^$" ) {
return 403;
}
禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
然后在nginx的配置文件里面引入了这个conf。
location /{
include agent_deny.conf;
}
通过nginx -t 检测语法配置什么的都没问题,然后在百度站长平台检测robots.txt,提示403。不知道是哪里出现了问题。然后又在"抓取诊断"那里检测抓取robots.txt 又是报错“抓取异常信息: DNS无法解析IP ”。然后把上面的conf配置去掉之后,所有的检测抓取又都正常了。
不知道有大神遇到这个问题没有?
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
这个不要屏蔽掉,你屏蔽了这个,基本上一些通用的搜索引擎抓取方式都无法使用了。就会返回403了。
本文来自投稿,不代表微盟圈立场,如若转载,请注明出处:https://www.vm7.com/a/ask/41757.html