带你全面最详细了解掌握什么是robots.txt
什么是robots.txt?
我相信从事web开发和爬虫技术开发的人对robots.txt文件或者这个协议一定不陌生,没错这个协议就叫做机器人协议该协议存在价值是规范爬虫让爬虫技术遵守一个道德规范至于遵不遵守那就看你自己了因为它不是强制性的就像道德和法律区别类似,道德只会谴责不会让你坐牢,有关robots.txt的详细定义大家可以去robots.txt协议说明去具体了解。
robots.txt协议目录结构与参数讲解
robots.txt文件一般位于存放于web根目录下,举个例子比如百度robots.txt大家可以这样访问打开https://www.baidu.com/robots.txt可以看到如下图所示有几个参数特别重要参数
User-agent
User-agent是允许爬取该网站的爬虫引擎名字
如User-agent: Baiduspider就是只允许百度爬虫爬取在你的爬虫遵守这个协议的情况下,最常见的我们可以用scrapy来举例子如下图所示我们创建了一个scrapy爬虫:该爬虫爬取打印url 在scrapy的setting文件有个
参数来设置是否遵守爬虫robots.txt协议默认是True遵守,在默认情况下我们来爬取百度,我们打开百度robots.txt我们可以看到User-agent: Baiduspider,也就是说百度这个链接在爬虫遵守爬虫协议情况下只允许百度爬虫抓取,那么我们可以看到在ROBOTSTXT_OBEY = True时我们运行结果是不会打印任何东西的
也就是说不是百度爬虫它不允许去抓取,那么如果scrapy想要抓取页面我们必须将其设置为false,设置后我们再运行可以看到打印出了
这也是刚学习scrapy的朋友疑惑的一个地方明明有写代码为啥打印不出结果因为scrapy默认是设置了遵守的。
Disallow
不允许爬取的域名下面的指定子目录一般设置在user-agent下面:
Allow
和DisAllow恰好相反
上面就是关于robots.txt协议的详细介绍大家如果想了解更多可以自行百度也可以自己写网站时做一个robots.txt文件,这样有利于那些遵守协议的大型爬虫能够检测到你对你进行抓取,当然你可以不这么做,如果你没设置robots.txt那么scrapy的setting文件里面。ROBOTSTXT_OBEY 是否为true对所有爬虫都是公开的不受任何限制任何爬虫都能爬取不管这个爬虫是否遵不遵守是否为恶意爬虫,关于robots.txt如果大家觉得手动去写比较麻烦推荐一个网站给大家这个网站是可以根据你的要求自动生成你需要的robots文件大家感兴趣可以看看。感谢大家就为大家介绍到这里,我是网虫,我真是太有文化了点个赞呗