最近网站被facebook的爬虫恶意抓取,1秒钟抓好几次,持续好久,写robots.txt禁止facebookexternalhit和meta-externalagent,它不认,还继续抓~
就研究了下怎么从服务器上禁止UA头,找到了解决办法,如下是摘录过来的技术文档,备用。
万恶的facebookexternalhit|meta-externalagent,你抓我站有毛用???
进服务器后进入这个路径 nginx/conf 新建一个文件,文件名可以为:agent_deny.conf 复制以下代码到此文件:
禁止Scrapy等爬虫工具的抓取
if ($http_user_agent ~* "Scrapy|Sogou web spider|compatible|Baiduspider|Lavf/|1.8.0.00757") {
return 403;
}
禁止指定UA及UA为空的访问
if ($http_user_agent ~ "compatible|FeedDemon|JikeSpider|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|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$" ){
return 403;
}
禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
针对特殊的user_agent的访问
if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
return 404;
}
保存文件退出 进入站点的配置文件,在server下的位置粘贴进这段代码:
include agent_deny.conf;
保存,退出,即可生效
注: 1、如果你只想禁止google的,就把compatible删了,改成Googlebot 2、最好的办法是禁止播放器爬虫,这样你的cms爱怎么被爬就怎么被爬
==============================
如果你只是想播放器不被爬虫,如果你的播放器主页是php的,那就在主页php文件最上方加入以下代码:
$theua='compatible|Baiduspider|YisouSpide';
$uapanduan=preg_match('('.$theua.')', $_SERVER['HTTP_USER_AGENT'], $uapd)?1:0; if($uapanduan==1){
header('Location:https://www.baidu.com');exit();
}
注:$theua=’compatible|Baiduspider|YisouSpide’; 此参数可以自己修改
最新评论
$viewrnd=rand(2,5); 这个是重点
多年前亲测有用,现在你只能网上再找找了,注意版本号
亲测无效。。
www.jiaobanjiyh.com 香港服务器的站一直不收录,哪位大佬知道是怎么回事
www.jiaobanjiyh.com 香港服务器的站一直不收录,哪位大佬知道是怎么回事
www.jiaobanjiyh.com 香港服务器的站一直不收录,哪位大佬知道是怎么回事
Thanks for your 50 user license! That is great useful inform
复制了两段代码后直接前后台都你的网站遇到致命错误。。。