学爬虫一定会涉及到robot.txt这个文件,访问网站域名+ / + robot.txt ,即可访问这个文件。
之前看过不少byteSpider疯狂务实robot.txt爬瘫一些小站。看看这个也好
robots.txt文件是每一个搜索引擎蜘蛛到你的网站之后要寻找和访问的第一个文件,robots.txt是你对搜索引擎制定的一个如何索引你的网站的规则。通过该文件,搜索引擎就可以知道在你的网站中哪些文件是可以被索引的,哪些文件是被拒绝索引的,我们就可以很方便地控制搜索索引网站内容了。
robots.txt文件的作用:
1、屏蔽网站内的死链接
2、屏蔽搜索引擎蜘蛛抓取站点内重复内容和页面
3、阻止搜索引擎索引网站隐私性的内容
因此建立robots.txt文件是很有必要的,网站中重复的内容、页面或者404信息过多,搜索引擎蜘蛛就会认为该网站价值较低,从而降低对该网站的“印象分”,这就是我们经常听到的“降低权重”,影响网站排名。
robots.txt文件需要注意的最大问题是:必须放置在一个站点的根目录下,而且文件名必须全部小写。
robots.txt文件的基本语法:
1、User-agent:即搜索引擎蜘蛛的名称;
2、Disallow:即要拦截的部分。
3、常见的通配符:* /
4、uri url的理解
URI 在于I(Identifier)是统一资源标示符,可以唯一标识一个资源。
URL在于Locater,一般来说(URL)统一资源定位符,可以提供找到该资源的路径,比如http://www.zhihu.com/question/21950864,但URL又是URI,因为它可以标识一个资源,所以URL又是URI的子集。
举个是个URI但不是URL的例子:urn:isbn:0-486-27557-4,这个是一本书的isbn,可以唯一标识这本书,更确切说这个是URN。
总的来说,locators are also identifiers, so every URL is also a URI, but there are URIs which are not URLs.转自知乎-作者:张晓杰-https://www.zhihu.com/question/21950864/answer/28847598
下面是一些基本的robots.txt文件示例。
# 允许所有的搜索引擎访问网站的所有部分或者建立一个空白的文本文档,命名为robots.txt。
User-agent:*
Disallow:
或
User-agent:*
Allow:/
# 禁止所有搜索引擎访问网站的所有部分。
User-agent:*
Disallow:/
# 禁止百度索引你的网站。
User-agent:Baiduspider
Disallow:/
# 禁止Google索引你的网站。
User-agent:Googlebot
Disallow:/
# 禁止除百度以外的一切搜索引擎索引你的网站。
User-agent:Baiduspider
Disallow:
User-agent:*
Disallow:/
# 禁止除Google以外的一切搜索引擎索引你的网站。
User-agent:Googlebot
Disallow:
User-agent:*
Disallow:/
# 禁止和允许搜索引擎访问某个目录,如:禁止访问admin目录;允许访问images目录。
User-agent:*
Disallow:/admin/
Allow:/images/
# 禁止和允许搜索引擎访问某个后缀,如:禁止访问admin目录下所有php文件;允许访问asp文件。
User-agent:*
Disallow:/admin/*.php$
Allow:/admin/*.asp$
# 禁止索引网站中所有的动态页面(这里限制的是有“?”的域名,如:index.php?id=8)。
User-agent:*
Disallow:/*?*