В репозитории представлена библиотека на 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. Для запуска включённого двоичного файла требуется:
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, просто выполните следующие шаги:
$ 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 )