php禁止网页抓取(关于robots.txt文件的写法和规范还是有必要普及一下)
优采云 发布时间: 2021-11-05 20:02php禁止网页抓取(关于robots.txt文件的写法和规范还是有必要普及一下)
搜索引擎和任何 网站 之间的链接是 robots.txt 文件。所有搜索引擎都允许 收录 和禁止 收录 遵循相同的协议。robots.txt 文件的编写是否符合规范仍需普及。
1. 什么是robots.txt?
robots.txt 是网站 与搜索引擎之间协议的纯文本文件。当搜索引擎蜘蛛访问一个站点时,它首先会爬行检查站点根目录中是否存在robots.txt。
如果存在,则根据文件内容确定访问范围。如果没有,蜘蛛将沿着链接爬行。Robots.txt 放在项目的根目录下。默认情况下,如果没有robots.txt文件,搜索引擎会认为你的网站的任何页面都允许被抓取和抓取。
2. robots.txt 语法
1) 允许所有搜索引擎访问网站的所有部分
Robots.txt 的写法如下:
User-agent:* ##User-agent 代表一个搜索引擎,这一行代表所有搜索引擎
Disallow: * #disallow 表示不允许,此行表示全部不允许
或者
用户代理:*
Allow:/ #这里的allow表示允许,这一行表示全部允许
复制代码
注意:星号“*”表示“全部”,井号“#”表示“注释”,斜线“/”表示目录。
注意:1.第一个英文要大写。当冒号是英文时,冒号后面有一个空格。这几点不能错。
2) 阻止所有搜索引擎访问 网站 的所有部分
Robots.txt 的写法如下:
用户代理:*
不允许:/
复制代码
也可以写如下,效果和上面一样:
用户代理:*
不允许: *
复制代码
上面代码的意思是:禁止任何搜索引擎收录任何页面。
3) 只需要禁止蜘蛛访问某个目录,比如禁止admin、css、images等目录被索引
Robots.txt 的写法如下:
User-agent:* #所有搜索引擎
Disallow:/css/ #禁止收录css目录下的所有文件
Disallow:/admin/ #禁止收录admin目录下的任何文件
Disallow:/images/ #禁止收录images目录下的任何文件
复制代码
4) 阻止文件夹 /templets,但可以抓取文件夹 /templets/main/ 之一:
Robots.txt 的写法如下:
用户代理: *
Disallow:/templets #禁止抓取根目录下的模板文件(或文件夹)
Allow:/templets/main/ #允许抓取根目录下模板文件夹中main文件夹的所有内容
复制代码
5)禁止访问/html/目录(包括子目录)中所有后缀为“.php”的URL
Robots.txt 的写法如下:
用户代理:*
Disallow:/html/*.php #禁止收录根目录下html文件夹中所有以“.php”结尾的文件
复制代码
6) 只允许访问某个目录下带有某个后缀的文件,使用“$”,“$”代表具体的文件名(文件格式)。
Robots.txt 的写法如下:
用户代理:*
Allow:.html$ #只允许访问和抓取以“.html”结尾的文件
Disallow:/ #禁止访问所有文件
复制代码
注意:disallow 和allow 命令可以同时使用。搜索引擎将首先查找 disallow 命令。如果纯粹是disallow命令,则按照协议放弃爬取;然后搜索引擎会继续查找是否存在“允许”命令,如果存在则执行。抓取,所以allow命令是disallow命令的补充,应该灵活使用。不允许和允许没有先后顺序,前面的任何人都可以做到。
7)禁止索引网站中的所有动态页面。例如,带有“?”的域名 这里限制了,比如index.php?id=1,robots.txt写成如下:
User-agent:* #User-agent 代表搜索引擎
Disallow:*?* #Disallow 收录 带有问号“?”的 URL
复制代码
8) 禁止搜索引擎抓取我们网站上的所有图片(如果您的网站使用了其他后缀图片名称,您可以在此处直接添加)。有时候,我们想节省Server资源,就需要禁止各种搜索引擎索引我们网站上的图片。除了使用“Disallow:/images/”直接屏蔽文件夹外,还可以直接屏蔽图片。格式。Robots.txt 的写法如下:
用户代理: *
Disallow:.jpg$ #禁止抓取jpg格式的文件,下同
禁止:.jpeg$
禁止:.gif$
禁止:.png$
禁止:.bmp$
复制代码
9)指定特定的搜索引擎:
用户代理:百度蜘蛛
允许:*.html$
不允许: /
复制代码
上面命令的意思是:对于百度搜索引擎,允许百度蜘蛛索引抓取所有以“.html”结尾的文件夹。其他搜索引擎不受限制。如果不写,则表示不受限制。
User-agent 是搜索引擎的名称,通常用星号“*”表示一切。要指定搜索引擎,您需要知道搜索引擎蜘蛛的名称。可以使用百度或者查看搜索引擎的描述,百度的蜘蛛名字是“Baiduspider”,谷歌的蜘蛛名字是“googlebot”。
百度产品使用不同的用户代理:
产品名称对应用户代理
无线搜索百度蜘蛛
图片搜索 百度蜘蛛-image
视频搜索 百度蜘蛛-视频
新闻搜索 百度蜘蛛-新闻
百度采集 百度蜘蛛-最爱
百度联盟Baiduspider-cpro
商业搜索Baiduspider-ads
网络和其他搜索百度蜘蛛
网页编码方式
在网页代码之间添加代码。此标签禁止搜索引擎抓取 网站 并显示网页快照。
网页代码之间加//表示禁止百度搜索引擎抓取网站并显示网页快照。
在网页代码之间,添加意味着禁止谷歌搜索引擎抓取网站并显示网页快照。
另外,当我们的需求很奇怪的时候,比如以下几种情况:
1. 网站 添加了Robots.txt,百度可以搜索到吗?
因为搜索引擎索引数据库的更新需要时间。虽然百度蜘蛛已经停止访问您在网站上的网页,但清除百度搜索引擎数据库中已建立网页的索引信息可能需要几个月的时间。另请检查您的机器人是否配置正确。如果收录急需您的拒绝,您也可以通过投诉平台反馈请求处理。
2.希望网站的内容被百度收录,但快照不会被保存。我该怎么办?
百度蜘蛛符合互联网元机器人协议。您可以使用网页元设置使百度显示仅索引网页,而不在搜索结果中显示网页的快照。和robots的更新一样,更新搜索引擎索引库也是需要时间的,所以虽然你在网页中通过meta禁用了百度在搜索结果中显示页面的快照,但是如果网页索引已经在百度搜索引擎数据库信息,可能需要两到四个星期才能在线生效。
想被百度收录,但不保存网站快照,以下代码解决:
将上述代码放在网页之间的任何位置。
如果你想禁止所有搜索引擎保存你网页的快照,那么代码如下:
一些常用的代码组合:
:您可以抓取此页面,并且可以继续索引此页面上的其他链接
:不抓取此页面,但您可以抓取此页面上的其他链接并将其编入索引
:您可以抓取此页面,但不允许抓取此页面上的其他链接并将其编入索引
: 不抓取此页面,也不沿此页面抓取以索引其他链接