1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-robotstxt

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Парсер и сопоставитель для robots.txt от Google

В репозитории представлена библиотека на C++ (совместимая с C++14), которая реализует парсер и сопоставитель robots.txt от компании Google.

О библиотеке

Протокол исключения роботов (REP) — это стандарт, который позволяет владельцам веб-сайтов контролировать доступ к URL-адресам автоматизированных клиентов (например, поисковых роботов) через простой текстовый файл со специальным синтаксисом. Это один из основных строительных блоков интернета в том виде, в котором мы его знаем, и то, что позволяет работать поисковым системам.

Поскольку REP был стандартом де-факто в течение последних 25 лет, разные разработчики по-разному реализуют парсинг robots.txt, что приводит к путанице. Этот проект призван решить эту проблему, выпуская парсер, который использует Google.

Библиотека представляет собой слегка модифицированный производственный код, используемый Googlebot, поисковым роботом Google, для определения того, к каким URL-адресам он может получить доступ на основе правил, предоставленных веб-мастерами в файлах robots.txt. Библиотека выпущена с открытым исходным кодом, чтобы помочь разработчикам создавать инструменты, которые лучше отражают парсинг и сопоставление robots.txt в Google.

Для веб-мастеров мы включили в проект небольшой двоичный файл, позволяющий протестировать отдельный URL и пользовательский агент на соответствие файлу robots.txt.

Создание библиотеки

Быстрый старт

Мы включили в библиотеку небольшой двоичный файл для тестирования локального файла robots.txt на соответствие пользовательскому агенту и URL. Для запуска включённого двоичного файла требуется:

  • совместимая платформа (например, Windows, macOS, Linux и т. д.). Большинство платформ полностью поддерживаются;
  • совместимый компилятор C++, поддерживающий как минимум C++14. Поддерживается большинством основных компиляторов;
  • Git для взаимодействия с репозиторием исходного кода. Чтобы установить Git, обратитесь к руководству «Настройка Git» на GitHub.
  • Хотя вы можете использовать свою собственную систему сборки, большая часть документации в этом руководстве предполагает, что вы используете Bazel. Чтобы загрузить и установить Bazel (и любые его зависимости), обратитесь к Руководству по установке Bazel.

Создание с помощью Bazel

Bazel — официальная система сборки для библиотеки, которая поддерживается на большинстве основных платформ (Linux, Windows, MacOS и др.) и компиляторов.

Чтобы собрать и запустить двоичный файл:

$ git clone https://github.com/google/robotstxt.git robotstxt
Cloning into 'robotstxt'...
...
$ cd robotstxt/
bazel-robots$ bazel test :robots_test
...
/:robots_test                                                      PASSED in 0.1s

Executed 1 out of 1 test: 1 тест пройден.
...
bazel-robots$ bazel build :robots_main
...
Target //:robots_main up-to-date:
  bazel-bin/robots_main
...
bazel-robots$ bazel run robots_main -- ~/local/path/to/robots.txt YourBot https://example.com/url
  user-agent 'YourBot' with url 'https://example.com/url' allowed: YES

Создание с использованием CMake

CMake — поддерживаемая сообществом система сборки для библиотеки.

Чтобы создать библиотеку с помощью CMake, просто выполните следующие шаги:

$ git clone https://github.com/google/robotstxt.git robotstxt
Cloning into 'robotstxt'...
...
$ cd robotstxt/
...
$ mkdir c-build && cd c-build
...
$ cmake .. -DROBOTS_BUILD_TESTS=ON
...
$ make
...
$ make test
Running tests...
Test project robotstxt/c-build
    Start 1: robots-test
1/1 Test #1: robots-test ......................   Passed    0.02 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.02 sec
...
$ robots ~/local/path/to/robots.txt YourBot https://example.com/url
  user-agent 'YourBot' с url 'https://example.com/url' разрешено: ДА

Примечания

Парсинг файлов robots.txt выполняется точно так же, как и в рабочей версии Googlebot, включая обработку процентных кодов и символов юникода в шаблонах. Однако пользователь должен убедиться, что URI, передаваемый функциям AllowedByRobots и OneAgentAllowedByRobots или параметру URI инструмента robots, соответствует формату, указанному в RFC3986, поскольку... Эта библиотека не будет выполнять полную нормализацию указанных параметров URI. Соответствие будет выполнено в соответствии со спецификацией REP, только если URI будет в таком формате.

Также обратите внимание на то, что библиотека и включённый двоичный файл не обрабатывают логику реализации, которую поисковый робот может применять вне синтаксического анализа и сопоставления, например: Googlebot-Image соблюдает правила, указанные для User-agent: Googlebot, если это явно не определено в тестируемом файле robots.txt.

Лицензия

Библиотека C++ для парсинга и сопоставления robots.txt лицензирована на условиях лицензии Apache. Дополнительную информацию смотрите в файле LICENSE.

Ссылки

Чтобы узнать больше об этом проекте:

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Роботам.txt парсер от Google с открытым исходным кодом. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-robotstxt.git
git@api.gitlife.ru:oschina-mirror/mirrors-robotstxt.git
oschina-mirror
mirrors-robotstxt
mirrors-robotstxt
master