php禁止网页抓取(如何查看seo来讲的网站的第一个文件?怎么写?)
优采云 发布时间: 2022-03-26 16:15php禁止网页抓取(如何查看seo来讲的网站的第一个文件?怎么写?)
如何检查机器人协议?怎么写?
对于seo来说,robots文件非常重要。搜索引擎爬虫抓取到的网站的第一个文件就是这个文件。这个文件告诉搜索引擎网站的内容可以爬取,哪些内容不能爬取,或者禁止爬取。挑选。如何检查机器人协议?可以用这个方法,主域名/robots.txt。
如何编写机器人协议?
当搜索蜘蛛访问一个站点时,它会首先检查站点根目录中是否存在 robots.txt。如果存在,搜索机器人会根据文件内容判断访问范围;如果文件不存在, all 的搜索蜘蛛将能够访问 网站 上没有密码保护的所有页面。
一、什么是机器人协议
Robots Protocol(也称Crawler Protocol、Robot Protocol等)的全称是“Robots Exclusion Protocol”。网站 通过Robots Protocol 告诉搜索引擎哪些页面可以爬取,哪些页面不能爬取,对于seo来说,意义重大。
robots 是一种协议,而不是命令。robots.txt 文件是放置在 网站 根目录中的文本文件,可以使用任何常见的文本编辑器创建和编辑。robots.txt 是搜索引擎访问 网站 时首先查看的文件,它的主要作用是告诉蜘蛛程序在服务器上可以查看哪些文件。
Robots协议文件编写及语法属性解释-seo
如果您将网站 视为一个房间,robots.txt 就是主人挂在房间门口的“请勿打扰”或“欢迎进来”的标志。该文件告诉访问搜索引擎哪些房间可以进入和访问,哪些房间因为存放贵重物品或者可能涉及到住户和访客的隐私而对搜索引擎关闭。但 robots.txt 不是命令,也不是防火墙,就像看门人无法阻止小偷等恶意入侵者一样。
所以,seo建议站长只需要在你的网站收录你不想被搜索引擎收录搜索到的内容时,才需要使用robots.txt文件,如果你想要搜索引擎收录@ >网站@ 上的所有内容>,请不要创建 robots.txt 文件。
二、机器人协议的原则
Robots 协议是国际互联网社区的通用道德规范,基于以下原则建立:
1、搜索技术应该为人类服务,同时尊重信息提供者的意愿,维护他们的隐私权;
2、网站有义务保护其用户的个人信息和隐私不受侵犯。
Robots协议文件编写及语法属性解释-seo
三、Robots 协议的编写
Robots.txt 可以放在站点的根目录中。一个robots.txt只能控制同协议、同端口、同站点的网络爬取策略。
1、robots.txt的常规写法
最简单的 robots.txt 只有两条规则:
User-agent:指定哪些爬虫是有效的
禁止:指定要阻止的 URL
整个文件分为 x 个部分,一个部分由 y 个 User-agent 行和 z 个 Disallow 行组成。一个部分意味着对于在 User-agent 行中指定的 y 个爬虫,z 个 URL 被阻止。这里x>=0,y>0,z>0。x=0时,表示空文件,空文件相当于没有robots.txt。
下面详细介绍这两条规则:
(1), 用户代理
爬虫在爬取时会声明自己的身份。这是用户代理。是的,就是http协议中的User-agent。Robots.txt 使用 User-agent 来区分各个引擎的爬虫。
例如:google web search爬虫的User-agent是Googlebot,下面一行指定了google爬虫。
用户代理:Googlebot
如果要指定所有爬虫怎么办?不可能详尽无遗,您可以使用以下行:
用户代理: *
有同学可能要问了,怎么知道爬虫的User-agent是什么?这里提供了一个简单的列表:Crawler List
当然也可以查看相关搜索引擎信息获取官方数据,如google爬虫列表、百度爬虫列表
(2), 不允许
Disallow 行列出要阻止的网页,以正斜杠 (/) 开头,并且可以列出特定的 URL 或模式。
要阻止整个 网站,请使用正斜杠,如下所示:
不允许: /
要阻止目录及其所有内容,请在目录名称后添加正斜杠,如下所示:
Disallow: /无用的目录名/
要阻止特定网页,请按如下方式指向该网页:
禁止:/pages.html
例子:
用户代理:baiduspider
不允许: /
用户代理:Googlebot
不允许: /
SEO解释:意思是禁止百度蜘蛛和谷歌蜘蛛抓取所有文章
2、robots.txt的高级编写
第一种说法:并非所有引擎的爬虫都支持高级玩法。一般来说,搜索引擎seo技术的领导者谷歌是支持最好的。
(1), 允许
如果我们需要阻止 seo1-seo100,而不是 seo50,我们应该怎么做?
计划一:
禁止:/seo1/
禁止:/seo2/
...
禁止:/seo49/
禁止:/seo51/
...
禁止:/seo100/
场景二:
禁止:/seo
允许:/seo50/
对比以上两种方案,大家应该都知道allow的用法了。如果你网站目前也有这个需求,seo技术建议你可以使用方案2来解决。
但是如果你想在 seo50 下屏蔽文件 seo.htm 怎么办?
禁止:/seo
允许:/seo50/
禁止:/seo50/seo.html
如果你很聪明,你一定能找到模式,对吧?谁更细心,谁就听谁更细心。
(2), 站点地图
前面说过,爬虫会通过网页内部的链接发现新的网页,但是如果指向的网页没有链接怎么办?或者用户输入条件生成的动态网页呢?网站 管理员可以通知搜索引擎他们的 网站 页面可用于抓取吗?这是站点地图。
在最简单的形式中,Sitepmap 是一个 XML 文件,其中列出了 网站 中的 URL 以及每个 URL 的其他数据(上次更新时间、更改频率以及相对于 网站 中的其他 URL重要性等),使用此信息搜索引擎可以更智能地抓取网站内容。
一个新的问题来了,爬虫怎么知道网站是否提供了sitemap文件,或者网站管理员生成了sitemap(可能是多个文件),爬虫怎么知道在哪里把它?
由于robots.txt的位置是固定的,所以大家想到了把sitemap的位置信息放到robots.txt中,变成robots.txt中的一个新成员,例如:
网站地图:
考虑到一个网站的页面很多,人工维护sitemap是不靠谱的。对此,seo建议大家可以使用google提供的工具来自动生成sitemap。
(3), 元标记
其实严格来说,这部分内容不属于robots.txt,但是非常相关。不知道放哪里,暂时放在这里吧。
robots.txt 的最初目的是让 网站 管理员管理可以出现在搜索引擎中的 网站 内容。但是,即使使用 robots.txt 文件来阻止爬虫抓取此内容,搜索引擎也有其他方法可以找到这些页面并将其添加到索引中。
例如,其他网站s可能仍然链接到这个网站,所以网页URL和其他公开可用的信息(例如链接到相关网站s的锚文本或在打开目录管理系统标题)可能会出现在引擎的搜索结果中,如果你想对搜索引擎完全不可见,你应该怎么做?seo给你的答案是:meta tags,也就是元标签。
例如,要完全防止页面内容被列在搜索引擎索引中(即使其他 网站 链接到该页面),请使用 noindex 元标记。每当搜索引擎查看该页面时,它都会看到 noindex 元标记并阻止该页面出现在索引中。请注意,noindex 元标记提供了一种逐页控制对 网站 的访问的方法。
例如,要防止所有搜索引擎索引 网站 中的页面,您可以添加:
这里的name值可以设置为某个搜索引擎的User-agent,指定某个搜索引擎被屏蔽。
除了 noindex 之外,还有其他元标记,例如 nofollow,它们禁止爬虫跟踪此页面的链接。这里再提一下seo:noindex和nofollow在HTML 4.01规范中有描述,但是不同引擎对其他标签的支持程度不同。还请读者查阅每个引擎的文档。
(4), 抓取延迟
robots.txt除了控制什么可以爬,什么不能爬,还可以用来控制爬虫爬取的速度。怎么做?通过设置爬虫在抓取之间等待的秒数。
爬行延迟:5
表示您需要在当前 fetch 之后等待 5 秒,然后才能进行下一次 fetch。
SEO提醒大家:谷歌不再支持这种方式,但是站长工具中提供了一个功能,可以更直观的控制爬取率。
这是题外话。几年前seo记得有一段时间robots.txt也支持复杂的参数:Visit-time,爬虫只能在visit-time指定的时间段内访问;request-rate:用于限制URL的读取频率,用于控制不同时间段的不同爬取率。
后来估计支持的人太少了,所以才逐渐废止。有兴趣的博主可以自行研究。seo了解到的是,目前google和baidu都不再支持这个规则,其他的小引擎公司好像从来没有支持过。
四、Robots 协议中语法属性说明
Robots协议用于通知搜索引擎哪些页面可以爬取,哪些页面不能爬取;网站中一些比较大的文件可以屏蔽,比如图片、音乐、视频等,节省服务器带宽;也可以屏蔽网站上的一些死链接,方便搜索引擎抓取网站内容;或者设置网站地图链接,方便蜘蛛爬取页面。
User-agent:*这里*代表所有类型的搜索引擎,*是通配符。
Disallow: /admin/ 这里的定义是禁止爬取admin目录下的目录。
Disallow: /mahaixiang/*.htm 禁止访问/mahaixiang/目录下所有以“.htm”为后缀的URL(包括子目录)。
禁止:/*?* 禁止访问 网站 中收录问号 (?) 的所有 URL。
Disallow: /.jpg$ 禁止抓取来自网络的所有 .jpg 图像。
Disallow:/mahaixiang/abc.html 禁止爬取ab文件夹下的adc.html文件。
allow: /mahaixiang/ 这个定义是允许爬取mahaixiang目录下的目录。
允许:/mahaixiang 这里的定义是允许爬取mahaixiang的整个目录。
允许:.htm$ 只允许访问以“.htm”为后缀的 URL。
Allow: .gif$ 允许抓取网页和 gif 格式的图像。
站点地图:/sitemap.html 告诉爬虫此页面是 网站 地图。
例子:
用户代理: *
不允许: /?*
禁止:/seo/*.htm
用户代理:EtaoSpider
不允许: /
SEO解释:表示禁止所有搜索引擎抓取seo目录下网站和.htm文章中所有收录问号(?)的URL。同时,etao是完全屏蔽的。
五、Robots 协议中的其他语法属性
1、Robot-version:用于指定机器人协议的版本号
示例:机器人版本:版本 2.0
2、抓取延迟:Yahoo YST 的特定扩展,允许我们的抓取工具设置较低的抓取请求频率。
您可以添加 Crawl-delay:xx 指令,其中“XX”是爬虫程序两次进入站点时的最小延迟(以秒为单位)。
3、抓取延迟:定义抓取延迟
示例:爬行延迟:/mahaixiang/
4、Visit-time:只有在visit-time指定的时间段内,机器人才能访问指定的URL,否则无法访问。
示例:访问时间:0100-1300 #Allow access from 1:00 am to 13:00 am
5、Request-rate:用于限制URL的读取频率
示例:请求率:40/1m 0100 - 0759 在 1:00 到 07:59 之间每分钟 40 次访问。
请求率:12/1m 0800 - 1300 在 8:00 到 13:00 之间每分钟 12 次访问。
seo评论:
Robots 协议由 网站 出于安全和隐私原因设置,以防止搜索引擎抓取敏感信息。搜索引擎的原理是通过爬虫蜘蛛程序自动采集互联网上的网页并获取相关信息。
出于网络安全和隐私的考虑,每个网站都会设置自己的Robots协议来表达搜索引擎,哪些内容是搜索引擎收录愿意和允许的,哪些是不允许的. 引擎会根据Robots协议赋予的权限进行seo爬取。
机器人协议代表了一种契约精神。只有遵守这条规则,互联网公司才能确保网站和用户的隐私数据不会受到侵犯。违反机器人协议将带来巨大的安全隐患。