屏蔽蜘蛛疯狂爬取避免网站卡死

前言

做站的时候有些时候网站访问极其之慢,也不想被攻击的样子,查看网站后台日志,发现都是谷歌及其他国外不知名的搜索引擎爬虫疯狂不间断的爬取网站上,这些爬虫对于国内的我们其实并无卵用,下面通过两种方式来屏蔽他们,看官请看:

使用”robots.txt”协议

在网站根目录新建空白文件,命名为”robots.txt”,将下面内容复制其中。

User-agent: Baiduspider
Disallow:
User-agent: YisouSpider
Disallow:
User-agent: 360Spider
Disallow:
User-agent: Sosospider
Disallow:
User-agent: sogou spider
Disallow:
User-agent: YodaoBot
Disallow:
User-agent: Googlebot
Disallow:
User-agent: bingbot
Disallow:
User-agent: *
Disallow: /

Nginx配置

有些不按照规范爬取的爬虫会忽略你的robots.txt协议,我们采取通过Nginx判断来访User-Agent来屏蔽

#禁止Scrapy等工具的抓取
if ($http_user_agent ~ (Scrapy|Curl|HttpClient)) {
  return 403;
}
 
#禁止指定UA及UA为空的访问
if ($http_user_agent ~ "YandexBot|Bytespider|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|Ezooms|^$" ) {
  return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
  return 403;
}

可以根据你的需求更改屏蔽的爬虫。将上面代码添加到”location / { }” 段里面,比如伪静态规则里面即可。

注意:~为模糊匹配,~*为模糊匹配不区分大小写
来简单测试一下:


curl -I -A “Mozilla/5.0 YandexBot demo” http://你的域名


返回403表示设置成功!

给TA打赏
共{{data.count}}人
人已打赏
技术笔记

PHP随机输出图片功能

2021-12-11 23:16:07

技术笔记

苹果MacCmsV10前端player_aaaa视频地址加密

2021-12-12 18:14:51

声明 本站文章上的代码及教程皆来源于NOW世界(favnow.com),仅供学习交流,切勿用于非法用途。转载请备注来源!
如果您对此有任何有建树的想法都可以请您发送邮件至 cople@139.com 或点击右侧 私信:鲨鱼,我们将尽快处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索