robots.txt不是很详细的详解


前言

应公司要求,需要让服务器的异常消息能及时通知管理员,所以最近加了服务器异常会通知钉钉群的功能。问题就要从加了这个提示开始讲起。自从加了这个提示后,就收到了不同ip对本服务器发起的对robots.txt的请求。


一、robots.txt是什么?

robots.txt
概念:指robots协议
描述:位于网站根目录,是一个很小的文本文件
作用:告诉爬虫工具是否要抓取网站的某些部分
生成robots.txt的网站:https://robots.bmcx.com/
(说句题外话:蜘蛛就是爬虫的意思)

二、基本指令

1.User-agent

指定爬虫遵守的规则集,可以是通配符,表示适用于所有的爬虫

User-agent:*

也可以指定爬虫的名字:

User-agent:Baiduspider

下面是百度可参考的爬虫名称(可忽略):

2.Disallow

禁止指令,可以指定有哪些路径禁止访问

Disallow:/admin

只能禁止访问域名之后以“/admin”开头的所有路径
禁止访问的路径:

http://localhost:8080/admin
http://localhost:8080/admin/login
http://localhost:8080/admin/logout?userId=123

无法禁止访问的路径:

http://localhost:8080/article/admin

路径里可以加通配符,通配符的使用很简单,比如

*的使用:

Disallow:http://localhost:8080/article/*/list

中间的*号可以匹配任意文本,类似

http://localhost:8080/article/page/list
http://localhost:8080/article/common/list

这种url都会被拦截

$的使用:

结束符,表示以某个路径为结尾

Disallow:http://localhost:8080/article$

则会阻止爬虫爬取的url:

http://localhost:8080/article

不会阻止的url:

http://localhost:8080/article/page/list
http://localhost:8080/article/common/list

如果你要禁止你的网站的所有地址被爬虫,则可以这么写:

Disallow:/

3.Allow

允许指令,很少使用,可以使用该指令来允许禁止规则的例外。
例如禁止了/admin开头的路径,但是不想禁止/admin/login和/admin/logout的路径的话,可以在Allow里面允许,如:

Allow:/admin/login
Allow:/admin/logout

这样配置之后,会阻止对/admin/login、/admin/logout以及所有以/admin/login、/admin/logout开头的路径。

4.Sitemap

个人感觉这个配置应该不会用到,就是配置你的XML网站地图。主要是用来搜索引擎可以快速访问到网站的某个页面,你需要的话就配置一下。sitemap的值的格式就是一个xml文件的地址。
配置是这样:

Sitemap:https://www.domain.com/sitemap.xml

sitemap.xml的内容大概长下面这样:

<!-- Generated by Screaming Frog SEO Spider 12.4 -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<url>
		<loc>https://www.domain.com/wordpress-hosting</loc>
		<lastmod>2020-01-06</lastmod>
		<changefreq>daily</changefreq>
		<priority>1.0</priority>
	</url>
	<url>
		<loc>https://www.domain.com/hosting/app-vault</loc>
		<lastmod>2020-01-06</lastmod>
		<changefreq>daily</changefreq>
		<priority>1.0</priority>
	</url>
	<url>
		<loc>https://www.domain.com/about/sitemap</loc>
		<lastmod>2020-01-06</lastmod>
		<changefreq>daily</changefreq>
		<priority>1.0</priority>
	</url>
	<url>
		<loc>https://www.domain.com/domains/tlds/tech</loc>
		<lastmod>2020-01-06</lastmod>
		<changefreq>daily</changefreq>
		<priority>1.0</priority>
	</url>
</urlset>

这个xml文件的语法:
sitemap.xml必须:

  • 以 开始标记作为开始,以 结束标记作为结束。
  • 在 标记中指定命名空间(协议标准)。
  • 每个网址包含一个 条目作为 XML 父标记。
  • 在每个 父标记中包含一个 子标记条目。
    属性讲解:
属性名是否必填属性含义
loc该页的网址。如果您的网络服务器需要网址的话,此网址应以协议开始(例如:http)并以斜杠结尾。该值必须少于 2,048 个字符。
lastmod该文件上次修改的日期。此日期应采用 W3C Datetime 格式。如果需要,此格式允许省略时间部分,并使用 YYYY-MM-DD。
changefreq页面可能发生更改的频率。此值为搜索引擎提供一般性信息,可能与搜索引擎抓取页面的频率不完全相关。有效值为: always、 hourly、daily、 weekly、mothly、 yearly、never。always值应当用于描述随每次访问而改变的文档。而never值则应当用于描述存档的网址。请注意,抓取工具会将此标记的值视为提示而不是命令。尽管搜索引擎抓取工具在做决定时会考虑此信息,但对于标记为“hourly”页面的抓取频率可能低于每小时一次,而对于标记为“yearly”页面的抓取频率可能高于每年一次。抓取工具也可能会定期抓取标记为“never”的网页,以便能够处理对这些网页的未预期更改。
priority此网址的优先级是相对于您网站上其他网址的优先级而言的。有效值范围从 0.0 到 1.0。该值不会影响您的网页与其他网站上网页的比较结果,而只是告知搜索引擎您认为哪些网页对抓取工具来说最为重要。一个网页的默认优先级为 0.5。

sitemap文件必须以UTF-8编码。

三、注意事项

  • 如果你要阻止/admin开头的路径,却不小心阻止了/adminserver开头的路径,则可以这样配置:
Disallow:/admin$ 
Disallow:/admin/
  • robots.txt必须放置在网站的根目录下,而不能放置在子目录下,那样的话robots文件会被忽视。
  • robots.txt文件中的路径是区分大小写的。
  • User-agent只能配置一次,如果配置多次,会采取最后一行配置的值。
  • Disallow和Allow的路径必须以斜杆开头
  • 如果要阻止含有某参数的路径的话,用以下方法:
Disallow:/*?id = 
Disallow:/*&id =
  • 如果路径中带有<等特殊字符,需要转码

四、总结

记住不要妄图使用robots.txt实现复杂的功能,他只是用来限制你的项目被爬虫爬取的路径。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值