robots.txt文件
搜索引擎使用sphider程序自动访问互联网上的网页并获取网页信息。sphider在访问一个网站时,会首先检查该网站的根目录下是否有一个叫做robots.txt的纯文本文件,这个文件用于指定sphider在您的网站上的抓取范围。您可以在您的网站上创建一个robots.txt,在文件中声明该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分
robots.txt文件格式
“robots.txt”文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL,or NL作为结束符),每一条记录的格式如下所示:
“<field>:<optional space><value><optional space>”
在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow和Allow行。
User-agent
该项的值用于描述搜索引擎robot的名字。在“robots.txt”文件中,如果有多条User-agent记录说明有多个robot会受到“robots.txt”的限制,对该文件来说,至少要有一条User-agent记录。如果该值的值为*,则对任何robot均有效
Disallow
该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以Disallow项的值开头的URL不会被robot访问
Allow
该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开头的URL是允许被robot访问的
通配符
sphider支持使用“*”和“$”来模糊匹配URL
shell脚本禁止搜索引擎抓取
禁止搜索引擎抓取网站的网址可以在每个网站的根目录下放置如下的robots.txt文件:
User-agent: *
Disallow: /
一键部署的shell脚本:
#!/bin/bash
#网站根目录定义
root_dir=("/var/www/")
#构建爬虫规则
for dir in ${root_dir[*]}
do
#删除过期的robots.txt文件
if [ -f $dir/robots.txt ]; then
rm -r $dir/robots.txt
fi
#增加新的爬虫规则
echo "User-agent: *" >$dir/robots.txt
echo "Disallow: /" >>$dir/robots.txt
#修改权限
chown www-data.www-data $dir/robots.txt
done