网站怎么屏蔽禁止垃圾蜘蛛爬虫,节省网站资源消耗的优化教程知岛社区小管家2年前更新关注私信03760举报内容 ------正文内容展示,开始汲取新知识啦------ 互联网上有很多的网络爬虫机器人,它们带着各自的任务到处爬行,但这些爬虫机器人有些是有用的,例如Baiduspider、Googlebot、bingbot等。但还有很多垃圾爬虫,对网站没有任何益处,还耗费资源。 大量垃圾蜘蛛甚至爬虫访问很影响性能,特别是服务器配置不高的情况下,那么我们该怎样屏蔽掉垃圾蜘蛛呢? 什么是垃圾爬虫? 垃圾爬虫即对网站发展与推广无价值的爬虫。它们一般是一些数据采集爬虫或境外的搜索引擎爬虫。 数据采集爬虫 此类爬虫对网站发展或推广没有任何价值。有些还害处挺大。 数据采集爬虫大致可分为两种,一种是采集数据再转载到另外的网站的,此类爬虫对整个互联网都会造成巨大损害。说难听点就是“小偷”。 另外一种是为了建立某种大数据平台而采集数据的爬虫。例如Semrush,对应的爬虫是SemrushBot,这是一家靠销售数据的公司,但对于被爬行的网站来说,没有任何价值。 境外的搜索引擎爬虫 这个很好理解,它们就和百度、谷歌一样都是搜索引擎蜘蛛爬虫,但由于一些搜索引擎实在太小众,而且对中文网站来说几乎没有引流的效果。 例如:俄罗斯的Yandex搜索引擎,对于的爬虫是YandexBot,它爬行量不小,但对于中文站点引流几乎为0。从价值的角度来说,也可以归类于垃圾爬虫,除非网站有俄语版本或业务是覆盖俄罗斯的网站。 究竟有多少垃圾爬虫? 这个数字没人说得清除,因为互联网上的爬虫在不断增加,也没有任何权威机构做过这方面的统计。但大部分的搜索引擎爬虫还是比较恪守规矩的,不会爬行频率太高而造成网站访问缓慢或崩溃。 一般来说,屏蔽蜘蛛的爬取有三种方法: Robots 禁封 UA 禁封 IP 禁封 一、Robots 禁封 Robots 协议(也称为爬虫协议、机器人协议等)的全称是 “网络爬虫排除标准”(Robots Exclusion Protocol),用来告诉搜索引擎、爬虫哪些页面可以抓取,哪些页面不能抓取。 Robots 协议在网站中体现在根目录下的 robots.txt 文件,一般格式入下: User-agent: DataForSeoBot Disallow: / User-agent: SemrushBot Disallow: / User-agent: MJ12bot Disallow: / User-agent: AhrefsBot Disallow: / User-agent: Feedly Disallow: / User-agent: DotBot Disallow: / User-agent: YandexBot Disallow: / User-agent: ias-ir Disallow: / User-agent: adsbot Disallow: / User-agent: barkrowler Disallow: / User-agent: Mail.RU_Bot Disallow: / User-agent: SEOkicks Disallow: / User-agent: ias-va Disallow: / User-agent: proximic Disallow: / User-agent: CCBot Disallow: / User-agent: grapeshot Disallow: / User-agent: BLEXBot Disallow: / 将以上内容保存为robots.txt文件,并上传至网站根目录即可生效。或添加至已有的robots.txt文件内容顶部。 正规 Robot 在爬取网站前都会先读取该文件,根据 robots.txt 指示爬取,但是由于 Robots 协议并不是一个规范,而是约定俗成的,所以只能引导正规蜘蛛爬取,并不能阻止垃圾蜘蛛,因此要屏蔽流氓垃圾蜘蛛还需要其他更严格的措施来配合。 二、UA 禁封 UA(User Agent)中文名为用户代理,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等,大多数蜘蛛都有携带此信息,如谷歌 Chrome 浏览器 Windows 版本 UA 是: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36 针对指定 UA 的访问,返回预先设定好的异常页面(如 403,500)或跳转到其他页面的情况,即为 UA 禁封。 Nginx 下,可以单独创建一个配置文件,如 deny-robots.conf,并将文件添加到 nginx.conf 或网站配置中,然后重新加载 Nginx 即可。 例如 deny-robots.conf 在 /etc/nginx/conf/ 文件夹下,deny-robots.conf 内容: if ($http_user_agent ~ "InetURL|Pcore-HTTP|PocketParser|Wotbox|SEMrushBot|newspaper|DnyzBot|Mechanize|redback|ips-agent|Sogou Pic Spider|python-requests|PiplBot|SMTBot|WinHTTP|Auto Spider 1.0|GrabNet|TurnitinBot|Go-Ahead-Got-It|Download Demon|Go!Zilla|GetWeb!|GetRight|libwww-perl|Cliqzbot|MailChimp|SMTBot|Dataprovider|XoviBot|linkdexbot|feedreader|SeznamBot|Qwantify|spbot|evc-batch|zgrab|Go-http-client|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$") { return 444; } 则在网站配置中添加: server { ...... include deny-robots.conf ...... } 然后,service nginx reload 即可生效,Apache 等其他软件操作类似。 解释一下,这个配置的意思是 判断访问者 UA 是否包含引号中的字符串,若为真,则返回错误码 444,其中错误码 444 是 nginx 独有的错误码,表示服务器不返回任何数据,直接丢弃。。 由于 UA 禁封是由 Nginx 或 Apache 等已经到应用层才处理,因此即使已经禁止爬取访问,蜘蛛仍然会先与服务器创建连接,浪费资源,为此,针对特别流氓的蜘蛛,可以通过防火墙在底层拒绝连接。 三、IP 禁封 IP 禁封是指利用系统自带防火墙,拒绝蜘蛛 IP 连接,此措施最为严格,且针对有特定 IP 蜘蛛,如果 IP 是随机变动的, IP 禁封意义也不大。 举例, 有 UA 为 ”WF search/Nutch-1.12“ 的蜘蛛,通过 IP 183.94.118.76 与服务器产生大量连接访问,影响到正常运行,则通过以下命令禁止连接(CentOS7): 生效后此 IP 将无法再与服务器产生连接 整理了一份清单上传到 GitHub,链接:https://github.com/vircloud/ips ,可以作为参考。 温馨提示:本文最后更新于2023-02-25 23:46:44,某些文章具有时效性,若有错误或已失效,请私信客服或联系知新社长。------本文内容已结束,喜欢请分享------ 感谢您的访问,Ctrl+D收藏本站吧。 © 版权声明 相关声明 1、本站名称:知新网 2、本站永久网址:https://www.uzhix.com 3、本站部分内容源于网络和用户投稿,仅供学习与参考,如有侵权,请联系站长进行删除处理。 4、用户评论和发布内容,并不代表本站赞同其观点和对其真实性负责。 5、本站禁止以任何方式发布或转载任何违法的相关信息。 6、资源大多存储在云盘,如发现链接失效,请联系我们替换更新。 二月 25 知岛上的今时往日 2024:在线教育视频课程付费阅读系统源码_支持视频点播、会员等多项功能 (0)2024:Typecho程序后台SimpleAdmin简洁美化插件支持黑暗模式 (0)2024:Adobe Fresco绘画软件v5.0.1.1338 (0)2024:02月25日,星期日,每天60秒读懂全世界! (0) THE END软件/使用/设置# seo 点赞0投币 分享QQ空间微博QQ好友海报分享复制链接收藏