urllib.robotparser
— Парсер robots.txt
Модуль предоставляет единственный класс, RobotFileParser
,
отвечающий на вопросы о том, может ли пользовательский агент
получить URL-адрес на веб-сайте, на котором опубликован файл
robots.txt
. Дополнительные сведения о структуре файлов
robots.txt
см. на странице
документации.
-
class
urllib.robotparser.
RobotFileParser
(url='') Данный класс предоставляет методы для чтения, анализа и ответов на вопросы о файле
robots.txt
по адресу url.-
set_url
(url) Задаёт URL-адрес, ссылающийся на файл
robots.txt
.
-
read
() Считывает URL-адрес
robots.txt
и передает его синтаксическому анализатору.
-
parse
(lines) Парсит аргумент строк.
-
can_fetch
(useragent, url) Возвращает
True
, если useragent разрешено извлекать url в соответствии с правилами, содержащимися в проанализированном файлеrobots.txt
.
-
mtime
() Возвращает время последней загрузки файла
robots.txt
. Это полезно для долго работающих веб-пауков, которым необходимо периодически проверять наличие новыхrobots.txt
файлов.
-
modified
() Устанавливает время последней загрузки файла
robots.txt
на текущее время.
-
crawl_delay
(useragent) Возвращает значение параметра
Crawl-delay
изrobots.txt
для рассматриваемого useragent. Если такого параметра нет или он не применяется к указанному useragent, или записьrobots.txt
для этого параметра имеет недопустимый синтаксис, возвращаетNone
.Добавлено в версии 3.6.
-
request_rate
(useragent) Возвращает содержимое параметра
Request-rate
изrobots.txt
как именованный кортежRequestRate(requests, seconds)
. Если такого параметра нет или он не применяется к указанному useragent, или записьrobots.txt
для этого параметра имеет недопустимый синтаксис, возвращаетNone
.Добавлено в версии 3.6.
-
site_maps
() Возвращает содержимое параметра
Sitemap
изrobots.txt
в формеlist()
. Если такого параметра нет или записьrobots.txt
для этого параметра имеет недопустимый синтаксис, возвращаетNone
.Добавлено в версии 3.8.
-
В следующем примере демонстрируется базовое использование класса
RobotFileParser
:
>>> import urllib.robotparser
>>> rp = urllib.robotparser.RobotFileParser()
>>> rp.set_url("https://digitology.tech/robots.txt")
>>> rp.read()
>>> rrate = rp.request_rate("*")
>>> rrate.requests
3
>>> rrate.seconds
20
>>> rp.crawl_delay("*")
6
>>> rp.can_fetch("*", "https://digitology.tech/cgi-bin/search?city=San+Francisco")
False
>>> rp.can_fetch("*", "https://digitology.tech/")
True