木头虫在家

  • 系统
  • 网络
  • 技术
  • 安全
  • 运维
  • 应用
木头虫在家
蜘蛛网
  1. 首页
  2. 安全
  3. 正文

网站如何屏蔽垃圾蜘蛛爬取?

2019年6月18日 1359点热度 0人点赞 0条评论

网站一般欢迎蜘蛛访问,因为蜘蛛意味着搜索排名和流量,但有时候,大量垃圾蜘蛛甚至爬虫访问很影响性能,特别是服务器配置不高的情况下,那么我们该怎样屏蔽掉垃圾蜘蛛呢?

一般来说,屏蔽蜘蛛的爬取有三种方法:

  • Robots 禁封
  • UA 禁封
  • IP 禁封

一、Robots 禁封

Robots 协议(也称为爬虫协议、机器人协议等)的全称是 “网络爬虫排除标准”(Robots Exclusion Protocol),用来告诉搜索引擎、爬虫哪些页面可以抓取,哪些页面不能抓取。

Robots 协议在网站中体现在根目录下的 robots.txt 文件,一般格式入下:

User-agent: YisouSpider
Disallow: /
User-agent: EasouSpider
Disallow: /
User-agent: *
Disallow: /admin/

正规 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 ,可以作为参考。

Views: 413
标签: 服务器 蜘蛛
最后更新:2019年6月18日

admin

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

您需要 登录 之后才可以评论
分类
  • 值的推
  • 域名主机
  • 安全
  • 应用
  • 技术
  • 未分类
  • 系统
  • 网络
  • 运维
最新 热点 随机
最新 热点 随机
共享文件夹后访问出现引用的账号当前已锁定,且可能无法登录 功能发现打印提供程序dll已停止工作 中国音乐地图之听见安徽 张雪峰报志愿逻辑及核心观点 AnolisOS8 Linux系统OpenSSH漏洞升级到最新版OpenSSH9 Win11共享打印机错误提示0x00000bc4的解决办法 Mysql数据库ibtmp1文件过大原因及解决办法 ucloud香港云主机 Windows 11访问局域网共享文件时出现报错 “出现了扩展错误”解决办法 4s店修理工秘密,车开到报废,这几种东西不必换
Centos 配置eth0 提示Device does not seem to be present vmware虚拟机安装WIN11 提示这台电脑当前不满足win 11系统要求 Chrome浏览器“Adobe Flash Player 因过期而遭到阻止”的解决方法 查看品牌台式机、笔记本出厂序列号 CentOS 设置网络(修改IP&修改网关&修改DNS) mysql中mysql-bin.000001 000002 000003是什么文件?怎么删除 Docker官方镜像仓库不能访问的解决办法 液晶电视进入工程模式方法 安装win11无法跳过,提示为你连接到网络问题 解决办法 windows网络无法连接网关为0.0.0.0的解决办法

COPYRIGHT © 2025 blog.qmun.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备11036795号