给自己的网站加上robots.txt

本文详细介绍了robots.txt文件的作用、语法及使用技巧,包括如何利用该文件引导搜索引擎蜘蛛抓取指定内容,以及如何屏蔽不友好的链接。

今天给自己的网站加了一个robots.txt,在网上收集整理了一些资料,给自己网站也加上了robots.txt ! 顺便给大家分享一下!

一、robots.txt是什么?

  robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容。

  当一个搜索引擎(又称搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。

二、robots.txt的作用

  1、引导搜索引擎蜘蛛抓取指定栏目或内容;

  2、网站改版或者URL重写优化时候屏蔽对搜索引擎不友好的链接;

  3、屏蔽死链接、404错误页面;

  4、屏蔽无内容、无价值页面;

  5、屏蔽重复页面,如评论页、搜索结果页;

  6、屏蔽任何不想被收录的页面;

  7、引导蜘蛛抓取网站地图;

三、Robots的语法(三个语法和两个通配符)

  三个语法如下:

  1、User-agent:(定义搜索引擎)

  示例:

   User-agent: *(定义所有搜索引擎)
   User-agent: Googlebot (定义谷歌,只允许谷歌蜘蛛爬取)
   User-agent: Baiduspider (定义百度,只允许百度蜘蛛爬取)

   不同的搜索引擎的搜索机器人有不同的名称,谷歌:Googlebot、百度:Baiduspider、MSN:MSNbot、Yahoo:Slurp。

  2、Disallow:(用来定义禁止蜘蛛爬取的页面或目录)

  示例:

    Disallow: /(禁止蜘蛛爬取网站的所有目录 "/" 表示根目录下)
    Disallow: /admin (禁止蜘蛛爬取admin目录)
    Disallow: /abc.html (禁止蜘蛛爬去abc.html页面)
    Disallow: /help.html (禁止蜘蛛爬去help.html页面)

  3、Allow:(用来定义允许蜘蛛爬取的页面或子目录)

  示例:

    Allow: /admin/test/(允许蜘蛛爬取admin下的test目录)
    Allow: /admin/abc.html(允许蜘蛛爬去admin目录中的abc.html页面)

  两个通配符如下:

  4、匹配符 “$”

    $ 通配符:匹配URL结尾的字符

  5、通配符 “*”

    * 通配符:匹配0个或多个任意字符

四、robots.txt 综合示例

  1、禁止搜索引擎抓取特定目录

  在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。

  User-agent: *   Disallow: /admin/
  Disallow: /tmp/
  Disallow: /abc/

  2、禁止admin目录,但允许抓取admin目录下的seo子目录

  User-agent: *   Allow: /admin/seo/
  Disallow: /admin/

  3、禁止抓取/abc/目录下的所有以".htm”为后缀的URL(包含子目录)

  User-agent: *   Disallow: /abc/*.htm$

  4、禁止抓取网站中所有的动态页面

  User-agent: *   Disallow: /?

  屏蔽所有带“?”的文件,这样就屏蔽所有的动态路径。

  5、禁止百度蜘蛛抓取网站所有的图片:

  User-agent: Baiduspider
  Disallow: /.jpg$
  Disallow: /
.jpeg$
  Disallow: /.gif$
  Disallow: /
.png$
  Disallow: /*.bmp$

  6、要在阻止网站页面被抓取的同时仍然在这些页面上显示 AdSense 广告

  User-agent: *   Disallow: /folder1/

  User-agent: Mediapartners-Google
  Allow: /folder1/

  请禁止除 Mediapartners-Google 以外的所有漫游器。 这样可使页面不出现在搜索结果中,同时又能让 Mediapartners-Google 漫游器分析页面,从而确定要展示的广告。 Mediapartners-Google 漫游器并不与其他 Google User-agent 共享网页。

五、注意事项

  1、robots.txt 文件必须放在网站的根目录,不可以放在子目录。

    以吴钧泽博客网站为例:比如通过 https://www.wujunze.com/robots.txt 你就可以访问 wujunze.com的robots.txt文件了。
robots_txt.png

  2、robots.txt 文件名命名必须小写,记得在robot面加“s”。

  3、User-agent、Allow、Disallow的 “:” 后面有一个字符的空格。

  4、路径后面加斜杠“/” 和不加斜杠的是有区别的

    Disallow: /help
禁止蜘蛛访问 /help.html、/helpabc.html、/help/index.html

    Disallow: /help/ 
    禁止蜘蛛访问 /help/index.html。 但允许访问 /help.html、/helpabc.html

  5、Disallow与Allow行的顺序是有意义的:

    举例说明:

    允许蜘蛛访问 /admin/ 目录下的seo文件夹

    User-agent: *     Allow: /admin/seo/
    Disallow: /admin/

    如果Allow 和 Disallow 的顺序调换一下:

    User-agent: *     Disallow: /admin/
    Allow: /admin/seo/

    蜘蛛就无法访问到 /admin/ 目录下的 seo 文件夹,因为第一个 Disallow: /admin/ 已匹配成功。

六、关于Robots Meta

  Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots Meta标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots Meta标签也是放在页面中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。

  Robots Meta 标签中没有大小写之分,name="Robots" 表示所有的搜索引擎,可以针对某个具体搜索引擎(如google)写为 name="Googlebot", content部分有四个指令选项:index、noindex、follow、nofollow,指令间以 “,” 分隔。

  Index 指令告诉搜索机器人抓取该页面;

  NoIndex命令:告诉搜索引擎不允许抓取这个页面

  Follow 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;

  NoFollow命令:告诉搜索引擎不允许从此页找到链接、拒绝其继续访问。

  Robots Meta 标签的缺省值是Index和Follow;

  根据以上的命令,我们就有了一下的四种组合:

  可以抓取本页,而且可以顺着本页继续索引别的链接=

  不许抓取本页,但是可以顺着本页抓取索引别的链接

  可以抓取本页,但是不许顺着本页抓取索引别的链接

  不许抓取本页,也不许顺着本页抓取索引别的链接。

七、关于 rel="nofollow"

  将"nofollow"放在超链接中,告诉搜索引擎不要抓取特定的链接。

  如某博客上有垃圾评论:灌水

就是这些注意事项了,大家去试试robots.txt吧!

<think>好的,用户想检测网站robots.txt文件来判断是否可以爬取资源。首先,我需要回忆一下之前提到的关于robots.txt的相关信息,比如如何查看和解析它。之前用户提到的通过搜索引擎直接访问robots.txt的方法,比如输入网址后加/robots.txt,这可能是一个有效的方式。 用户上一次的问题是关于爬取教育网站,我给出的回答里提到了遵守robots协议,所以现在需要延续这个思路。用户现在需要具体的步骤来查看和解析该文件。首先,应该指导用户如何找到目标网站robots.txt文件,比如直接在浏览器输入网站域名后加上/robots.txt,例如www.youjiao5.com/robots.txt。 然后,解析robots.txt需要理解其结构,包括User-agent、Disallow、Allow等指令。可能需要解释这些指令的含义,比如不同的爬虫代理有不同的规则,Disallow后面跟的是禁止访问的路径。同时,要提醒用户注意robots.txt并不是强制性的,但遵守它是一个良好的实践,尤其是在法律合规方面。 接下来,用户可能需要代码示例来自动化检测robots.txt。Python中有现成的库,比如urllib.robotparser,可以解析robots.txt并判断某个URL是否允许爬取。需要演示如何使用这个库,比如创建RobotFileParser对象,读取robots.txt,然后检查特定路径是否被允许。 另外,用户可能关心如何处理动态生成的robots.txt或者有多个User-agent的情况。需要说明如何处理这些复杂情况,比如遍历所有User-agent规则,或者结合网站的实际结构进行分析。 还要注意法律问题,比如即使robots.txt允许爬取,也要遵守数据安全法和个人信息保护法。需要再次强调合规的重要性,避免用户误触法律。 最后,生成相关问题时要覆盖用户可能有的后续疑问,比如如何处理被禁止的路径,或者如何结合sitemap进行爬取优化。这些问题可以帮助用户更全面地了解爬虫策略。</think>### 分步解析:如何检测与解析网站robots.txt文件 #### 一、查看robots.txt文件 1. **直接访问法** 在浏览器地址栏输入: $$ \text{目标网站域名}/robots.txt \quad (例如:https://www.youjiao5.com/robots.txt) $$ 若返回404错误,说明网站未设置robots协议[^2] 2. **搜索引擎检索法** 通过百度搜索语法: $$ \text{site:域名/robots.txt} \quad (例如:site:youjiao5.com/robots.txt) $$ 可快速定位文件[^1] #### 二、解析核心规则 ```python import urllib.robotparser def check_permission(target_url): rp = urllib.robotparser.RobotFileParser() rp.set_url(target_url + "/robots.txt") rp.read() user_agent = "*" # 默认匹配所有爬虫 path = "/course/list" # 需要检测的路径 # 返回True表示允许爬取 return rp.can_fetch(user_agent, path) ``` #### 三、关键指令解析表 | 指令 | 功能说明 | 数学表达式示例 | |--------------|-----------------------------------|-------------------------------------| | User-agent | 指定适用的爬虫类型 | $U = \{ \text{Googlebot}, \text{Baiduspider} \} $ | | Disallow | 禁止访问路径 | $D = \{ "/admin/", "/tmp/" \} $ | | Allow | 例外允许路径 | $A = \{ "/public/", "/docs/" \} $ | | Crawl-delay | 爬取间隔要求(秒) | $t \geq 3$ | | Sitemap | 网站地图位置 | $S = \{ \text{/sitemap.xml} \} $ | #### 四、合规验证流程 1. 通过`urllib.robotparser`验证路径权限 2. 检查是否存在动态加载的规则(需结合Headless浏览器) 3. 验证协议有效性: $$ \text{有效性} = \begin{cases} 1 & \text{当} \exists \text{Disallow规则} \\ 0 & \text{其他情况} \end{cases} $$ 4. 记录检测结果并生成合规报告[^5] #### 五、法律风险规避 - 即使robots.txt未禁止,仍需遵守《数据安全法》第21条 - 禁止抓取包含个人信息的资源(如手机号、身份证号等) - 建议设置爬虫标识: ```python headers = { 'User-Agent': 'MyEduBot/1.0 (+https://yourdomain.com/bot-info)' } ``` $$ \text{合规指数} = \frac{\text{遵守规则数}}{\text{总规则数}} \times 100\% \quad (\text{要求} \geq 95\%) $$
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值