robots.txt文件详细解说
1. 什么是robots.txt文件?
搜索引擎使用spider程序自动访问互联网上的网页并获取网页信息。spider在访问一个网站时,会首先会检查该网站的根域下是否有一个叫做 robots.txt的纯文本文件,这个文件用于指定spider在您网站上的抓取范围。您可以在您的网站中创建一个robots.txt,在文件中声明 该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。
请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
2. robots.txt文件放在哪里?
robots.txt文件应该放置在网站根目录下。举例来说,当spider访问一个网站(比如 http://www.abc.com)时,首先会检查该网站中是否存在http://www.abc.com/robots.txt这个文件,如果 Spider找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。
网站 URL | 相应的 robots.txt的 URL |
http://www.esobao.cn/ | http://www.esobao.cn/robots.txt |
http://www.esobao.cn:80/ | http://www.esobao.cn:80/robots.txt |
http://www.esobao.cn:1234/ | http://www.esobao.cn:1234/robots.txt |
http://esobao.cn/ | http://esobao.cn/robots.txt |
3. 我在robots.txt中设置了禁止百度收录我网站的内容,为何还出现在百度搜索结果中?
如果其他网站链接了您robots.txt文件中设置的禁止收录的网页,那么这些网页仍然可能会出现在百度的搜索结果中,但您的网页上的内容不会被抓取、建入索引和显示,百度搜索结果中展示的仅是其他网站对您相关网页的描述。
4. 禁止搜索引擎跟踪网页的链接,而只对网页建索引
如果您不想搜索引擎追踪此网页上的链接,且不传递链接的权重,请将此元标记置入网页的<HEAD> 部分:
<meta name="robots" content="nofollow">
如果您不想百度追踪某一条特定链接,百度还支持更的控制,请将此标记直接写在某条链接上:
<a href="signin.php" rel="nofollow">signin</a>
要允许其他搜索引擎跟踪,但仅防止百度跟踪您网页的链接,请将此元标记置入网页的<HEAD> 部分:
<meta name="Baiduspider" content="nofollow">
5. 禁止搜索引擎在搜索结果中显示网页快照,而只对网页建索引
要防止所有搜索引擎显示您网站的快照,请将此元标记置入网页的<HEAD>部分:
<meta name="robots" content="noarchive">
要允许其他搜索引擎显示快照,但仅防止百度显示,请使用以下标记:
<meta name="Baiduspider" content="noarchive">
注:此标记只是禁止百度显示该网页的快照,百度会继续为网页建索引,并在搜索结果中显示网页摘要。
6. 我想禁止百度图片搜索收录某些图片,该如何设置?
禁止Baiduspider抓取网站上所有图片、禁止或允许Baiduspider抓取网站上的某种特定格式的图片文件可以通过设置robots实现,请参考“robots.txt文件用法举例”中的例10、11、12。
7. robots.txt文件的格式
"robots.txt"文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL, or NL作为结束符),每一条记录的格式如下所示:
"<field>:<optional space><value><optionalspace>"
在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow和Allow行,详细情况如下:
User-agent:
该项的值用于描述搜索引擎robot的名字。在"robots.txt"文件中,如果有多条User-agent记录说明有多个robot会受 到"robots.txt"的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则对任何robot均有效, 在"robots.txt"文件中,"User-agent:*"这样的记录只能有一条。如果在"robots.txt"文件中,加入"User- agent:SomeBot"和若干Disallow、Allow行,那么名为"SomeBot"只受到"User-agent:SomeBot"后面的 Disallow和Allow行的限制。
Disallow:
该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以Disallow项的值开头的URL不会被 robot访问。例如"Disallow:/help"禁止robot访问/help.html、/helpabc.html、/help /index.html,而"Disallow:/help/"则允许robot访问/help.html、/helpabc.html,不能访问 /help/index.html。"Disallow:"说明允许robot访问该网站的所有url,在"/robots.txt"文件中,至少要有一条Disallow记录。如果"/robots.txt"不存在或者为空文件,则对于所有的搜索引擎robot,该网站都是开放的。
Allow:
该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开头 的URL 是允许robot访问的。例如"Allow:/hibaidu"允许robot访问/hibaidu.htm、/hibaiducom.html、 /hibaidu/com.html。一个网站的所有URL默认是Allow的,所以Allow通常与Disallow搭配使用,实现允许访问一部分网页同时禁止访问其它所有URL的功能。
使用"*"and"$":
Baiduspider支持使用通配符"*"和"$"来模糊匹配url。
"$" 匹配行结束符。
"*" 匹配0或多个任意字符。
注:我们会严格遵守robots的相关协议,请注意区分您不想被抓取或收录的目录的大小写,我们会对robots中所写的文件和您不想被抓取和收录的目录做匹配,否则robots协议无法生效。
8. URL匹配举例
Allow或Disallow的值 | URL | 匹配结果 |
/tmp | /tmp | yes |
/tmp | /tmp.html | yes |
/tmp | /tmp/a.html | yes |
/tmp | /tmphoho | no |
/Hello* | /Hello.html | yes |
/He*lo | /Hello,lolo | yes |
/Heap*lo | /Hello,lolo | no |
html$ | /tmpa.html | yes |
/a.html$ | /a.html | yes |
htm$ | /a.html | no |
9. robots.txt文件用法举例
例1. 禁止所有搜索引擎访问网站的任何部分 | User-agent: * |
例2. 允许所有的robot访问 | User-agent: * |
例3. 仅禁止Baiduspider访问您的网站 | User-agent: Baiduspider |
例4. 仅允许Baiduspider访问您的网站 | User-agent: Baiduspider |
关键词:
日志分析
1.什么是网站日志,从网站日志里面外面能得到什么? 网站日志:服务器记录了用户在网站上面的一些行为信息 内容包括:访客的IP地址 访问的时间 访问的方式 访问的协议 访问的状态码 访问的页面 访问了页面的大小 访客的操作系统以及使用的浏览器版本及内核 2.如何获取网站日志? 登陆FTP Weblog文件夹 下载 3.常见返回状态码: 200 返回成功 可以正常访问 301 重定向 集中权重 302 临时重定向 304状态码 如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码。简单的表达就是:客户端已经执行了GET,但文件未变化。 403 forbidden 服务器拒绝访问 权限问题 服务器不支持这个脚本运行 404 访问的页面不存在 not found (404错误页面) 500 并发数超了()在某个时段内所允许的大访问数量(15s) 503 服务器宕机(由于超载或进行停机维护)
4.IIS日志各字段讲解#Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-takendate:发出请求时候的日期。 s-sitename:服务名,记录当记录事件运行于客户端上的Internet服务的名称和实例的编号。 s-ip:服务器的IP地址。 cs-method:请求中使用的HTTP方法,GET/POST。 cs-uri-stem:URI资源,记录做为操作目标的统一资源标识符(URI),即访问的页面文件。 cs-uri-query:URI查询,记录客户尝试执行的查询,只有动态页面需要URI查询,如果有则记录,没有则以连接符-表示。即访问网址的附带参数。 s-port:为服务配置的服务器端口号。 cs-version:记录客户端使用的协议版本,HTTP或者FTP。 cs(User-Agent):用户代理,客户端浏览器、操作系统等情况。 cs(Referer):引用站点,即访问来源。 sc-status:协议状态,记录HTTP状态代码,200表示成功,403表示没有权限,404表示找不到该页面,具体说明在下面。
5.分析工具 5.1 光年日志分析工具 5.2 excel表格 5.3爱站工具包日志分析 日志的简单分析 1)注意那些被频繁访问的资源 2)注意那些你网站上不存在资源的请求。常见的扫描式攻击还包括传递恶意参数等: 3)观察搜索引擎蜘蛛的来访情况(看网站的抓取情况) 问题 1、新站刚上线,看看搜索引擎有没有来你网站抓取了; 2、网站收录异常,或者被k,通过日志可以了解搜索引擎是否还有来光顾你的网站; 3、对于网站的问题进行解决,必须要读懂日志; 、基础信息 我们从日志中能够获取哪里基础信息呢?总抓取量、停留时间(h)及访问次数这三个基础信息,可以从光年日志分析工具中统计出来。然后,通过这三个基础信息算出:平均每次抓取页数、单页抓取停留时间。然后用我们的MSSQL提取蜘蛛抓取量,根据以上的数据算出爬虫重复抓取率。 查看搜索引擎蜘蛛爬行总次数 一个网站的收录首先要搜索引擎蜘蛛来到网站爬去才能够实现。通过查看日志能够清楚的看到每天蜘蛛访问网站的总次数有多少,从而大致的判断网站的权重如何。一个高权重的网站,蜘蛛来访的次数相对是较多的,相反,一个低权重的网站,即使有非常庞大规模的内容,蜘蛛来访的次数依旧有限。爬行次数有限,分配的时间和深度也就有限,所以收录也就受到了限制。所以我们的重点就是多提供百度来访我们网站的入口,只有入口多了,访问次数才能得到提升。 平均每次抓取页数=总抓取量/访问次数 单页抓取停留时间=停留时间*3600/总抓取量 爬虫重复抓取率=100%—抓取量/总抓取量 查看爬行榜前十名的页面情况 除了查看蜘蛛总访问次数以及爬行目录的整体情况,剩下一个非常重要的就是查看爬行总页面的情况。我平时分析网站的时候,时常会看到,被蜘蛛爬行前几名的页面都是一些无关紧要的页面,比如B2C购物车链接页面、比如联系我们页面、一些主题中CSS文件,这些页面和文件对排名和收录本来没有实际的帮助,但现实情况是蜘蛛爬行的多,所以就会造成浪费,毕竟蜘蛛来访一个网站的总时间和总爬行次数是一定的,总抓取深度也是一定的,如果时间都浪费在了这些页面上,那么对于重点的内页收录就会受到影响。因此通过日志发现之后,就需要在robots.txt中屏蔽掉,或者在页面meta中屏蔽掉。 查看平均爬行一次的抓取深度 通过日志查看平均一次的抓取深度能有效的了解到网站内部结构的不足。比如百度蜘蛛在某天访问网站总共818次,抓取量是978,那么平均每次抓取的页面数就为1.2页。其实这个数据也是普遍存在的现象,很多网站都存在这样的现象。这充分说明了网站的内部链接做的不足,或者网站结构存在问题,或者是内容出现了高度重复现象,导致蜘蛛来到网站,要么没有什么新发现,要么被结构所阻止,爬行不到新的页面。毕竟,蜘蛛平均在我们网站存在的整体时间是有限的,在这个有限的时间内,如果我们自己设置了障碍,那么蜘蛛就会走掉,是非常可惜的事情。 目录抓取情况 用MSSQL提取出爬虫抓取的目录,分析每日目录抓取量。可以很清晰的看到每个目录的抓取情况 通过日志查看所有被爬行目录的整体情况,能让我们知道搜索引擎爬行多的目录是哪些,是否是我们想要提供给用户的目录。一般可以非常清楚的看到排名前十位的目录,如果这些目录并不是我们重点提供给用户内容的目录,那么就需要做出调整,说明当前的一些目录被多度爬行了,而真正有价值的目录没有被搜索引擎过度重视,要及时发现并找到原因。 第二、时间段抓取 重在分析每日的抓取情况,找到相应的抓取量较为密集的时间段,可以针对性的进行更新内容。同时,还可以看出,抓取不正常情况。服务器是否稳定,是否被攻击 第三,IP段的抓取 每日每个IP的抓取量,同样我们需要看整体,如果IP段没有明显的变化的话,网站升降权是没有多大问题的。因为在网站升权或者降权的时候,爬虫的IP段会更换的。 第四,状态码的统计 在这个之前你需要了解下,HTTP状态码返回值代表是什么。 如果你的网站出现太多的304,那么一定会降低搜索引擎的抓取频率以及次数 4)观察访客行为应敌之策: 1、封杀某个IP 2、封杀某个浏览器类型(Agent) 3、封杀某个来源(Referer)4、防盗链 5)文件重命名作用: 1.对访问时间进行统计,可以得到服务器在某些时间段的访问情况。 2.对IP进行统计,可以得到用户的分布情况。 3.对请求URL的统计,可以得到网站页面关注情况。 4.对错误请求的统计,可以更正有问题的页面。 6.日志分析思路
代码 说明 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功) 表示成功处理了请求的状态代码。 代码 说明 200 (成功 |