Robots协议

Robots 协议也称作机器人协议,主要用于搜索引擎去抓取网站页面。🔍通常存放在网站根目录下的robots.txt文件。该协议主要免去不必要的网站路径进行爬取。对于针对性的爬虫。😄也就没什么意义了。就好比告诉小偷,别偷你的东西。

基于遵循Robots协议进行的爬虫,首先会检查站点根目录下是否存在robots.txt文件,如果存在则根据其中定义的爬取范围进行爬取。如果没有则直接访问页面。

Robots规范

用户代理指令

使用user-agent指令用于指定规则适用于所有爬网程序:

User-agent: *

主要有Googlebot、BaiduSpider等标识

禁止指令

通过一个或多个disallow 指令来遵循用户代理行:

User-agent:* 
Disallow:/User

disallow指定url后缀紧接着/User的链接则被阻止。

允许指令

通过allow指令可以避开disallow阻止的链接:

User-agent:* 
Allow:/User/007
Disallow:/User

在disallow指定url后缀紧接着/User的页面则被阻止后,允许爬取/User/007链接地址。

Sitemap 指令

主要用于标识网站地图:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.lubaogui.com/wp-sitemap.xml

在各个搜索引擎站长工具上使用,便于搜索引擎收录🔍。

Robots 使用

使用robotparser模块进行检验是否遵循robots协议,代码如下:

from urllib.robotparser import RobotFileParser 
from urllib.request import urlopen

rp =RobotFileParser()
rp.parse(urlopen('https://www.lubaogui.com/robots.txt')read()decode('utf-8').split('\n')) 
print(rp.can_fetch('*', 'https://www.lubaogui.com/96'))

=== 打印结果 ===
True

👨‍💻虽然爬虫普遍并没用去遵循robots.txt协议,但是建议各位进行爬取时,合理处理提取效率。避免影响目标站点的负载。