robots.txt,只允许百度搜索引擎,谷歌搜索引擎,必应搜索引擎爬取,其他的全部禁止
以下是一个简单的 robots.txt
文件,它允许百度、谷歌和必应爬取网站内容,但禁止其他所有爬虫:
User-agent: *
Disallow: /
User-agent: Baiduspider
Allow: /
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
这个 robots.txt
文件使用 “User-agent” 行指定了允许的爬虫,并使用 “Disallow” 行禁止它们爬取网站的任何页面。
“User-agent: *”表示这个规则适用于所有的搜索引擎爬虫。
“Disallow: /”表示禁止爬虫访问网站的所有页面。
因此,”User-agent: * Disallow: /”这行指令的意思是:禁止所有搜索引擎爬虫访问网站的所有页面。
第一句和后面的内容不会冲突。在robots.txt
文件中,每行指令都是针对特定的爬虫,不会影响其他爬虫的访问规则。
百度搜索引擎会根据”User-agent: *”这行指令禁止所有爬虫访问网站,但接下来针对特定爬虫的”Allow: /”指令会覆盖这个规则,允许百度搜索引擎(Baiduspider)访问网站的任何页面。
因此,百度引擎会根据第一句和后面的指令综合考虑,不会只看第一句。
请注意,robots.txt
文件只是一种建议性的规范,并不具有强制性。因此,某些爬虫可能会忽略这些规则并继续爬取网站内容。此外,这个文件可能会阻止一些合法和重要的爬虫,如用于网站分析或索引的爬虫。因此,在编写 robots.txt
文件时需要谨慎考虑。
要限制爬取频率
要限制爬取频率,你可以在robots.txt
文件中使用Crawl-Delay
指令。该指令用于指定爬虫在两次连续访问之间的延迟时间。
以下是一个示例,将爬取频率限制为每60秒一次:
User-agent: *
Crawl-Delay: 60
Disallow: /
User-agent: Baiduspider
Allow: /
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
在这个示例中,所有爬虫在访问网站时都会受到Crawl-Delay: 60
的限制,即两次连续访问之间需要等待60秒。对于允许的爬虫(百度、谷歌、必应),它们将不受此限制的影响,因为Allow: /
指令会覆盖之前的禁止规则。
对于允许的爬虫也要限制频率
对于允许的爬虫,你可以使用User-agent
指令指定特定的爬虫,并在该指令下方使用Crawl-Delay
指令来限制它们的爬取频率。
以下是一个示例,将允许的爬虫(百度、谷歌、必应)的爬取频率限制为每60秒一次:
User-agent: *
Disallow: /
User-agent: Baiduspider
Crawl-Delay: 60
Allow: /
User-agent: Googlebot
Crawl-Delay: 60
Allow: /
User-agent: Bingbot
Crawl-Delay: 60
Allow: /
在这个示例中,对于允许的爬虫(百度、谷歌、必应),它们将受到Crawl-Delay: 60
的限制,即两次连续访问之间需要等待60秒。对于其他未指定的爬虫,它们将无法访问网站的所有页面。
下面整理一下下我们只允许常用搜索引擎爬取:百度,谷歌,必应,360,神马,头条,搜狗,yandex(全球范围内,Yandex的市场份额相对较小,但它在俄罗斯的市场份额较高,俄罗斯最受欢迎的搜索引擎之一)搜索引擎爬取,并限制时间60秒以上。其他的禁止
User-agent: *
Disallow: /*.php
Disallow: /play/
Disallow: /include/
Crawl-Delay: 60
为啥取消了定义特定搜索引擎蜘蛛?
不正规的伪造蜘蛛根本不会遵循robots.txt
通过宝塔面板防火墙蜘蛛池可以只放行特定的蜘蛛,
也可以用在服务器或者网站代码中用ua屏蔽其他蜘蛛
所以没有限制特定蜘蛛的必要