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/007Disallow:/User

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

Sitemap 指令

次要用于标识网站地图:

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

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

Robots 应用

应用robotparser模块进行测验是否遵循robots协定,代码如下:

from urllib.robotparser import RobotFileParser from urllib.request import urlopenrp =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协定,然而倡议各位进行爬取时,正当解决提取效率。防止影响指标站点的负载。