Проверьте, не заблокирован ли url файл robots.txt с помощью Perl - PullRequest
0 голосов
/ 31 мая 2011

Может кто-нибудь сказать мне пример кода, чтобы проверить, был ли URL заблокирован robots.txt? Мы можем указать полный URL-адрес или каталог в файле robots.txt. Есть ли в Perl вспомогательная функция?

Ответы [ 5 ]

4 голосов
/ 31 мая 2011

Выезд WWW::RobotRules:

   The following methods are provided:

   $rules = WWW::RobotRules->new($robot_name)
  This is the constructor for WWW::RobotRules objects.  The first
  argument given to new() is the name of the robot.

   $rules->parse($robot_txt_url, $content, $fresh_until)
  The parse() method takes as arguments the URL that was used to
  retrieve the /robots.txt file, and the contents of the file.

   $rules->allowed($uri)
  Returns TRUE if this robot is allowed to retrieve this URL.
3 голосов
/ 31 мая 2011

WWW :: RobotRules - это стандартный класс для анализа файлов robots.txt, а затем проверки URL-адресов на предмет их блокировки.

Вас также может заинтересовать LWP :: RobotUA , который интегрирует это в LWP :: UserAgent , автоматически выбирая и проверяя файлы robots.txt при необходимости.

1 голос
/ 31 мая 2011

Загрузите файл robots.txt и выполните поиск «Disallow:» в файле. Затем проверьте, находится ли следующий шаблон (после Disallow :) в вашем URL. Если это так, URL запрещен robots.txt

Пример - Вы найдете следующую строку в файле robots.txt:

Disallow: / cgi-bin /

Теперь удалите «Disallow:» и проверьте, находится ли «/ cgi-bin /» (оставшаяся часть) непосредственно после TLD.

Если ваш URL выглядит так:

www.stackoverflow.com / CGI-BIN / somwhatelse.pl

запрещено.

Если ваш URL выглядит так:

www.stackoverflow.com / somwhatelse.pl

все в порядке. Полный набор правил вы найдете на http://www.robotstxt.org/. Именно так, если вы не можете установить дополнительные модули по любой причине.

Лучше было бы использовать модуль из cpan: На cpan есть отличный модуль, которым я пользуюсь: LWP :: RobotUA . LWP (libwww) является imho стандартом веб-доступа в perl - и этот модуль является его частью и обеспечивает хорошее поведение.

0 голосов
/ 24 мая 2015

WWW :: RobotRules пропускает правила " подстрока "

User-agent: *
Disallow: *anytext*

URL http://example.com/some_anytext.html будет принято (не заблокировано)

0 голосов
/ 31 мая 2011

Хм, вы, кажется, даже не смотрели!На первой странице результатов поиска я вижу различные механизмы загрузки, которые автоматически обрабатывают robots.txt, и, по крайней мере, один, который выполняет именно то, что вы просили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...