andronof/robotstxt

解析 robots.txt

1.2.0 2018-11-05 14:33 UTC

This package is not auto-updated.

Last update: 2024-09-20 22:23:05 UTC


README

这是一个用于解析 robots.txt 文件的库。它使用 PHP 编写。该库的主要任务是检查任何链接是否被关闭以供索引。解析规则来自 Яндекс 的描述。

解析规则

  1. 解析所有关于爬虫的数据。
  2. 对于每个爬虫,按照链接长度进行排序。如果多条规则长度相同,则优先考虑允许(allow)的规则。
  3. 包含空值的规则将被修改为其相反值。

安装

通过 composer

{
    "require": {
        "andronof/robotstxt": "dev-master"
    }
}

并运行命令

composer update

将安装最新版本,但不一定是稳定版,或者

composer require andronof/robotstxt

将安装最新稳定版本

使用

$robotstxt = new \Robotstxt(file_get_contents('http://yandex.ru/robots.txt'));

或者

$robotstxt = new \Robotstxt();
$robotstxt->init(file_get_contents('http://yandex.ru/robots.txt'));

检查链接是否在 robots.txt 中被禁止

if ($robotstxt->isAllowed('/msearch') ) {
    echo('Доступ разрешен');
} else {
    echo('Доступ запрещен');
}

该函数可以接受第二个参数作为爬虫名称。如果没有指定,则使用所有(*)的规则。请用起始斜杠(/)指定要检查的链接。

其他函数

  • isUserAgent($user_agent) — 检查是否有针对特定爬虫的规则
  • setUserAgent($user_agent = null) — 设置要使用哪个爬虫的规则。如果指定了爬虫,则比在 isAllowed 函数中指定爬虫有更高的优先级。如果需要重置全局爬虫,请将 null 传递给该函数。

在以下项目中使用