【每天学习一点新知识】robots.txt详解
目录
什么是robots.txt?
如何查看robots.txt?
robots.txt的内容
常见的搜索引擎的蜘蛛名称
如果创建并上传robots.txt文件?
如果网站信息都需要被抓取,是不是可以不用robots.txt了?
为什么叫"君子协议 "
什么是robots.txt?
robots.txt是一个协议,我们可以把它理解为一个网站的"管家",它会告诉搜索引擎哪些页面可以访问,哪些页面不能访问。也可以规定哪些搜索引擎可以访问我们的网站而哪些搜索引擎不能爬取我们网站的信息等等,是网站管理者指定的"君子协议"。
当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
另外,robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。
如何查看robots.txt?
在浏览器的网址搜索栏中,输入网站的根域名,然后再输入/robot.txt即可查看。比如,百度的robots.txt网址为 https://www.baidu.com/robots.txt
robots.txt的内容
User-agent: 搜索机器人的名称
Disallow: 不允许搜索机器人访问的地址
Allow: 允许搜索机器人访问的地址
若User-agent是*,则表示允许所有的搜索机器人访问该站点下的所有文件。在"robots.txt"文件中,"User-agent:*"这样的记录只能有一条。
Disallow和Allow后面跟的是地址,这个URL可以是一条完整的路径,也可以是部分的,地址的描述格式符合正则表达式(regex)的规则。因此可以在python中使用正则表达式来筛选出可以访问的地址。需要特别注意的是Disallow与Allow行的顺序是有意义的,robot会根据第一个匹配成功的Allow或Disallow行确定是否访问某个URL。
下列内容代表 禁止所有搜索引擎访问网站的任何部分
User-agent: *
Disallow: /例如:
代表禁止Baidu spider访问根目录下/baidu 、/s?、/ulink?、/link?、/home/news/data/、/bh 这几个子目录
具体的写法可参考:robots.txt 文件详解_passport_daizi的博客-CSDN博客
常见的搜索引擎的蜘蛛名称
如果创建并上传robots.txt文件?
(1) 用记事本或者其他文本型的软件(譬如Emeditor)创建一个名为robots.txt的文件,注意名字不能改,也不能大写,必须全小写。
(2) 用记事本编辑该文件,输入指令规则
例如:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~name/
(3) 上传文件至网站根目录。由于网站建站系统不同、服务器架构不同,上传文件的方法没有统一的,譬如可以借助主机的管理面板,又或是用FTP,在连通到网站所在的文件目录后,将robots.txt放在网站所在文件夹第一层中(也就是根目录,必须位于根目录中,否则无效)。当成功上传后,通常在浏览器中访问域名/robots.txt就可以查看到文件。
如果网站信息都需要被抓取,是不是可以不用robots.txt了?
每当用户试图访问某个不存在的URL时,服务器都会在日志中记录404错误(无法找到文件)。每当搜索蜘蛛来寻找并不存在的robots.txt文件时,服务器也将在日志中记录一条404错误,所以建议还是添加一个robots.txt。
为什么叫"君子协议 "
本身robots.txt就只是一个约定,一个协议,是道德约束,一般的搜索引擎爬虫都会遵守这个协议的,否则在这个行业还怎么混下去。而且robots.txt一般也是站点为了更好被搜索引擎收录所准备的。真正的封禁不可能靠user-agent来封禁。
【每天学习一点新知识】robots.txt详解相关推荐
- 【每天学习一点新知识】中间人攻击是什么
目录 中间人攻击介绍 中间人攻击原理 1. ARP欺骗 2. DNS欺骗 防御方法 中间人攻击介绍 中间人攻击(man-in-the-middle attack, abbreviated to MIT ...
- 每天学习一点新知识(一)——Unity开发游戏的拆包
每天学习一点新知识(一)--Unity开发游戏的解包 用了CSDN有一段时间了,但一直都没有写过blog,只是在输入,没有输出.而且一直主要都是在查一些作业.题解什么的,还是希望自己能够多学到一些新东 ...
- FreeEIM 来点新知识iOS UIScrollView详解
老程序员FreeEIM 来点新知识iOS UIScrollView详解 UIScrollView 顾名思义也知道这个是和滚动相关的控件,在Android开发时遇到过ScrollView,当内容的 ...
- 【每天学习一点新知识】菜刀、冰蝎、蚁剑、哥斯拉webshell工具分析
什么是webshell已经在之前的文章里做过讲解了,这里就不再赘述 附上链接:[每天学一点新知识]getshell???webshell???_RexHarrr的博客-CSDN博客 目录 中国菜刀 菜 ...
- 【每天学习一点新知识】sqlmap的使用
这个大佬的教程太详细了,这边选取了一部分理论的sqlmap详细使用教程_星落.的博客-CSDN博客_sqlmap sqlmap常用命令 -h ...
- 【每天学习一点新知识】浏览器的同源策略
目录 同源的定义 同源策略的限制 规避同源策略 document.domain属性 跨域资源共享(CORS) 跨文档通信 JSONP WebSocket Nginx反向代理 浏览器默认 ...
- 【每天学习一点新知识】网络安全--截获攻击
截获攻击原理和后果 原理 若正常传输路径为终端A到终端B,黑客首先改变传输路径为终端A-黑客终端-终端B,使得传输信息必须经过黑客终端,黑客终端就可以截获终端A传输给终端B的消息. 后果 目前很多访问 ...
- 【每天学习一点新知识】nmap端口扫描
nmap所识别的6个端口状态 open(开放的) 应用程序正在该端口接收TCP 连接或者UDP报文.发现这一点常常是端口扫描 的主要目标.安全意识强的人们知道每个开放的端口 都是攻击的入口.攻击者或者 ...
- 【每天学习一点新知识】JNDI注入
什么是JNDI JNDI是Java的一种API,为我们提供了查找和访问各种命名和目录服务的通用统一的接口.通过JNDI统一接口我们可以来访问各种不同类型的服务,例如远程方法调用(RMI),通用对象请求 ...
最新文章
- Pytorch TensorRT
- html文本显示_「前端开发」HTML入门与实战
- WYSE率先支持RemoteFX功能
- 前天看了sigmastar新品发布,双核,1.2GHZ,真香!更多你想要了解的SSD201/202技术问题,看过来!启明云端MM帮你整理了!拿走不谢
- python 3.5 3.6 3.7_选择 Python3.6 还是 Python 3.7
- Google,一切皆为 AI!
- 非阻塞模式WinSock编程入门(Socket关联窗口消息机制)
- XShell6免费版获取(个人版)
- ajax菜鸟教程html,菜鸟教程--AJAX
- 新建mfc工程后打开图形化设计界面
- D8(YT88)加密狗破解与加密工具
- 【嵌入式】---- 单片机常用单位
- python如何调用math函数库函数_Python math函数库
- 【CP2K教程(一)】元动力学(metadynamics)与增强采样技术
- 为什么局部下降最快的方向就是梯度的负方向?
- 【以太网硬件一】802.3xx标准怎么这么多?它们有什么关系?
- iphone开发之仿微信用户引导界面的实现
- react 调用子(孙)组件方法
- unity 陀螺仪 物体旋转和移动效果
- 【mac使用技巧】程序坞上的下载不见了该如何解决呢?