The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Google открыл код парсера файлов robots.txt

01.07.2019 23:39

Компания Google опубликовала под лицензией Apache 2.0 код С++ библиотеки для разбора файлов robots.txt, содержащих правила (REP, Robots Exclusion Protocol) для исключения контента из области индексации ботами поисковых систем. Одновременно компания Google выступила с инициативой продвижения протокола REP в качестве интернет-стандарта после 25 лет существования в роли стандарта де-факто.

Библиотека развивается уже около 20 лет, соответствует стандарту C++11 и учитывает различные нюансы оформления, встречающиеся в обиходе. Вместе с библиотекой также предложен код утилиты для проверки правильности определения правил в robots.txt. Представленный код используется в рабочих системах Google, выполняющих обработку robots.txt.

  1. Главная ссылка к новости (https://opensource.googleblog....)
  2. OpenNews: Google открыл систему для анализа наборов данных без нарушения конфиденциальности
  3. OpenNews: Google и Binomial открыли код системы сжатия текстур Basis Universal
  4. OpenNews: Google открыл систему для создания sandbox-окружений для библиотек C/C++
  5. OpenNews: Google, SiFive и WD основали альянс для продвижения открытых чипов и SoC
  6. OpenNews: Google открыл код ClusterFuzz, платформы для выявления ошибок и уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51003-web
Ключевые слова: web, robot, bot, parser, lib
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 00:19, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    ну прям рокет сайнс!...
    куча кода, что делается в 10 строк...
     
     
  • 2.3, аноннн (?), 00:25, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • +9 +/
    ну ка, хотел бы посмотреть на парсер robots в 10 или хотябы в 100 строк кода

    обрадуете нас своим изобретением?

     
     
  • 3.6, Аноним (6), 08:10, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что делается в 10 строк != парсер robots.txt
    Он мог и про отдельные функции говорить и вообще с другим языком сравнивать
     

  • 1.2, zloykakpes (ok), 00:24, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Это всё для получения «классов» на гитхабе.
     
  • 1.4, Аноним (4), 01:02, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    User-agent: Googlebot
    Disallow: /
     
  • 1.5, Аноним (5), 07:58, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Библиотека ... учитывает различные нюансы оформления,

    Костыли чтоль? )))

     
     
  • 2.7, DerRoteBaron (ok), 10:00, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Опечатки, например, diasllow
     
     
  • 3.8, пох. (?), 10:38, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    эксперты опеннета, как всегда. Нет, думать за вас и исправлять ваши опечатки этот парсер не обучен.
    Но есть "нюансы", изучайте:
    https://github.com/google/robotstxt/blob/master/robots_test.cc#L795
     
     
  • 4.12, Аноним84701 (ok), 11:38, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >> Опечатки, например, diasllow
    > эксперты опеннета, как всегда. Нет, думать за вас и исправлять ваши опечатки
    > этот парсер не обучен.

    Эк вы … самокритичны (впрочем, как обычно):
    https://github.com/google/robotstxt/blob/master/robots.cc#L696



    bool ParsedRobotsKey::KeyIsDisallow(absl::string_view key) {
      return (
          absl::StartsWithIgnoreCase(key, "disallow") ||
          (kAllowFrequentTypos && ((absl::StartsWithIgnoreCase(key, "dissallow")) ||
                                   (absl::StartsWithIgnoreCase(key, "dissalow")) ||
                                   (absl::StartsWithIgnoreCase(key, "disalow")) ||
                                   [b](absl::StartsWithIgnoreCase(key, "diasllow"))[/b] ||
                                   (absl::StartsWithIgnoreCase(key, "disallaw")))));



     
     
  • 5.14, пох. (?), 13:25, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    о, хренассе, это вот прямо в основном коде.

    впрочем, пользы от поделки все равно никакой - https://www.opennet.ru/openforum/vsluhforumID3/117784.html#11

    (ведь сиплюсплюсики такой низкоуровневый язычок, что для банальной задачи обработки текстового файла из десятка предопределенных строк надо притащить за собой мильен каких-то мусорных гуглоисходников и собирать это все нескучной сборочной системочкой)

     

  • 1.9, бублички (?), 10:45, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    просто бесценный проект - целый индус трудился и больше часа. да и новость тоже революционная. ждём hello world 2
     
     
  • 2.16, пох. (?), 13:29, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ты просто еще зависимости не скачал - там не "целый индус", там вся его бангалорская родня в количестве 3000000 обезьян трудилась.
    И еще пяток миллионов китайцев припахала за ними горшки выносить.


     
     
  • 3.17, бублички (?), 15:25, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    за 20 лет, карл! ты погляди чего наваляли! поди с нуля переписывали 80 раз (по 4 раза в год)
     
     
  • 4.19, пох. (?), 21:45, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > поди с нуля переписывали 80 раз (по 4 раза в год)

    конечно - ты ради кода в 1,5k строк (работающего банально - со строками) будешь изучать что это за нёх?
    absl::StartsWithIgnoreCase() - и т д?

    Полагаю, ты просто перепишешь большую часть на чем-то что либо нужно в другой работе, либо просто уже знаешь.

    Вот и следующий копчоный то же самое сделает.

     

  • 1.10, Аноним (10), 11:28, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >содержащих правила (REP, Robots Exclusion Protocol) для исключения контента из области индексации ботами поисковых систем

    РКН обяжет всех поисковиков к обязательному использованию. А правилами исключения захочет рулить самостоятельно.

     
  • 1.11, Аноним (11), 11:28, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Building the library

    Bazel is the official build system for the library

    расходимся, ребята - чтобы собрать "библиотеку" из ЦЕЛОГО ОДНОГО файла - как обычно у гугля, нужно себе нескучных зондопрограмм понаставить пару терабайт.

     
     
  • 2.18, Аноним (18), 17:37, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    О, эксперты-любители автокрапа подъехали? Его то уж точно не пара терабайт, да?
     

  • 1.13, YetAnotherOnanym (ok), 11:45, 02/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Осталась мелочь - догадаться, что сам Гугл вовсе не обязательно использует этот парсер в том виде, в каком он опубликован, но уж всяко хочет, чтобы мы верили, что используемый им парсер именно такой.
     
     
  • 2.15, пох. (?), 13:27, 02/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ты хочешь сказать, что моя строчка с dissalow: / все же не будет им обрабатываться "правильно"?

    да ну, не может быть!

     

  • 1.20, Andrey_Karpov (ok), 19:50, 11/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PVS-Studio хотел, но не смог найти баги в robots.txt - https://www.viva64.com/ru/b/0638/
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру