抓取动态网页(robots.txt是什么?蜘蛛爬取的作用及作用分析)
优采云 发布时间: 2022-02-16 20:29抓取动态网页(robots.txt是什么?蜘蛛爬取的作用及作用分析)
一、robots.txt 是什么?
robots.txt 是一个纯文本文件,网站管理员可以在其中声明他们不想被搜索引擎访问的 网站 部分,或指定搜索引擎仅 收录指定内容。
当搜索引擎(也称为搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点的根目录中是否存在 robots.txt。如果存在,搜索机器人会根据文件内容判断访问权限。范围; 如果该文件不存在,搜索机器人会跟随该链接。
二、robots.txt的作用
1、引导搜索引擎蜘蛛爬取指定的列或内容;
2、网站在修改或URL重写优化期间阻止不友好的搜索引擎链接;
3、屏蔽死链接和404错误页面;
4、屏蔽无内容和无价值的页面;
5、阻止重复页面,例如评论页面和搜索结果页面;
6、屏蔽任何你不想成为的页面收录;
7、引导蜘蛛抓取地图网站;
三、Robots 语法(三个语法和两个通配符)
三种语法如下:
1、用户代理:(定义搜索引擎)
例子:
用户代理:*(定义所有搜索引擎)
User-agent:Googlebot(定义谷歌,只允许谷歌蜘蛛抓取)
User-agent:Baiduspider(定义百度,只允许百度蜘蛛爬行)
不同的搜索引擎对搜索机器人有不同的称呼,谷歌:Googlebot,百度:Baiduspider,MSN:MSNbot,雅虎:Slurp。
2、Disallow:(用于定义不允许被蜘蛛爬取的页面或目录)
例子:
Disallow:/(禁止蜘蛛爬取网站的所有目录,“/”表示根目录)
Disallow: /admin (禁止蜘蛛爬取 admin 目录)
Disallow: /abc.html(禁止蜘蛛爬到 abc.html 页面)
Disallow: /help.html(禁止蜘蛛爬到 help.html 页面)
3、允许:(用于定义允许蜘蛛爬取的页面或子目录)
例子:
允许:/admin/test/(允许蜘蛛爬取admin下的test目录)
允许:/admin/abc.html(允许蜘蛛爬到admin目录下的abc.html页面)
两个通配符如下:
4、匹配“$”
$ 通配符:匹配 URL 末尾的字符
5、通配符“*”
* 通配符:匹配 0 个或多个任意字符
四、robots.txt 综合示例
1、禁止搜索引擎抓取特定目录
在这个例子中,网站有三个目录限制了搜索引擎的访问,即搜索引擎不会访问这三个目录。
用户代理:* 禁止:/admin/
禁止:/tmp/
禁止:/abc/
2、admin目录是禁止的,但是admin目录下的seo子目录是允许爬取的
用户代理:* 允许:/admin/seo/
禁止:/admin/
3、禁止抓取/abc/目录下所有以“.htm”为后缀的URL(包括子目录)
用户代理:* 禁止:/abc/*.htm$
4、禁用对 网站 中所有动态页面的爬取
用户代理:* 禁止:/?
用“?”阻止所有文件,从而阻止所有动态路径。
5、不允许百度蜘蛛抓取网站所有图片:
用户代理:百度蜘蛛
禁止:/.jpg$
禁止:/.jpeg$
禁止:/.gif$
禁止:/.png$
禁止:/*.bmp$
6、防止 网站 页面被抓取,同时仍然在这些页面上展示 AdSense 广告
用户代理:* 禁止:/folder1/
用户代理:Mediapartners-Google
允许:/folder1/
请屏蔽除 Mediapartners-Google 之外的所有漫游器。这可以防止页面出现在搜索结果中,同时允许 Mediapartners-Google 机器人分析页面以确定要展示的广告。Mediapartners-Google 机器人不与其他 Google 用户代理共享网页。
五、备注
1、robots.txt 文件必须放在网站 的根目录下,不能放在子目录下。
以吴君泽的博客网站为例:比如通过robots.txt文件可以访问。
2、robots.txt 文件名一定要小写,记得给机器人加“s”。
3、User-agent、Allow、Disallow 在“:”之后有一个字符空格。
4、后跟斜杠“/”的路径和不带斜杠的路径是有区别的
禁止:/帮助
防止蜘蛛访问/help.html、/helpabc.html、/help/index.html
禁止:/帮助/
禁止蜘蛛访问 /help/index.html。但允许访问/help.html、/helpabc.html
5、Disallow 和 Allow 行的顺序是有意义的:
例如:
允许蜘蛛访问 /admin/ 目录中的 seo 文件夹
用户代理:* 允许:/admin/seo/
禁止:/admin/
如果 Allow 和 Disallow 的顺序颠倒:
用户代理:* 禁止:/admin/
允许:/admin/seo/
爬虫无法访问/admin/目录下的seo文件夹,因为第一个Disallow:/admin/已经匹配成功。
六、关于机器人元
Robots.txt 文件主要限制整个站点或目录的搜索引擎访问,而 Robots Meta 标签主要针对特定页面。与其他META标签(如使用的语言、页面描述、关键词等)一样,Robots Meta标签也放置在页面上,专门告诉搜索引擎ROBOTS如何抓取内容的页面。
Robots Meta标签不区分大小写,name="Robots"表示所有搜索引擎,对于特定搜索引擎(如google)可以写成name="Googlebot"。内容部分有四个命令选项:index、noindex、follow、nofollow,命令之间用“,”分隔。
Index 指令告诉搜索机器人抓取页面;
NoIndex 命令:告诉搜索引擎不要抓取该页面
Follow指令表示搜索机器人可以继续沿着页面上的链接爬行;
NoFollow 命令:告诉搜索引擎不允许从此页面找到链接并拒绝它们进一步访问。
Robots Meta标签的默认值为Index和Follow;
根据上面的命令,我们有以下四种组合:
可以爬取这个页面,并且可以继续索引这个页面上的其他链接=
该页面不允许被爬取,但其他链接可以沿着该页面被爬取和索引
您可以爬取该页面,但不允许爬取该页面上的其他链接进行索引
不要爬取这个页面,也不要沿着这个页面爬取其他链接进行索引。
七、关于 rel="nofollow"
将“nofollow”放在超链接中告诉搜索引擎不要抓取特定链接。