Документация Python неофициальный перевод

urllib.robotparser.md

80 строк · 4.5 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3/library/urllib.robotparser.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `urllib.robotparser` – парсер robots.txt89**Исходный код:** [Lib/urllib/robotparser.py](https://python-all.ru/src/3.14/Lib/urllib/robotparser.py)1011---1213Этот модуль предоставляет один класс, [`RobotFileParser`](https://python-all.ru/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser), который отвечает на вопросы о том, может ли конкретный пользовательский агент получить URL на сайте, опубликовавшем файл `robots.txt`. Подробнее о структуре файлов `robots.txt` см. [**RFC 9309**](https://python-all.ru/3/library/urllib.robotparser.html).1415#### `class urllib.robotparser.RobotFileParser(url='')`1617Этот класс предоставляет методы для чтения, разбора и ответов на вопросы о файле `robots.txt` по адресу *url*.1819#### `set_url(url)`2021Устанавливает URL, указывающий на файл `robots.txt`.2223#### `read()`2425Читает URL `robots.txt` и передаёт его парсеру.2627#### `parse(lines)`2829Разбирает аргумент lines.3031#### `can_fetch(useragent, url)`3233Возвращает `True`, если *useragent* разрешено получать *url* в соответствии с правилами, содержащимися в разобранном файле `robots.txt`.3435#### `mtime()`3637Возвращает время последней загрузки файла `robots.txt`. Это полезно для долго работающих веб-пауков, которым необходимо периодически проверять новые файлы `robots.txt`.3839#### `modified()`4041Устанавливает время последней загрузки файла `robots.txt` на текущее время.4243#### `crawl_delay(useragent)`4445Возвращает значение параметра `Crawl-delay` из `robots.txt` для указанного *useragent*. Если такого параметра нет, или он не применяется к указанному *useragent*, или запись `robots.txt` для этого параметра содержит недопустимый синтаксис, возвращает `None`.4647Добавлено в версии 3.6.4849#### `request_rate(useragent)`5051Возвращает содержимое параметра `Request-rate` из `robots.txt` в виде [именованного кортежа](https://python-all.ru/3/glossary.html#term-named-tuple) `RequestRate(requests, seconds)`. Если такого параметра нет, или он не применяется к указанному *useragent*, или запись `robots.txt` для этого параметра содержит недопустимый синтаксис, возвращает `None`.5253Добавлено в версии 3.6.5455#### `site_maps()`5657Возвращает содержимое параметра `Sitemap` из `robots.txt` в виде [`list()`](https://python-all.ru/3/library/stdtypes.html#list). Если такого параметра нет или запись `robots.txt` для этого параметра содержит недопустимый синтаксис, возвращает `None`.5859Добавлено в версии 3.8.6061Следующий пример демонстрирует базовое использование класса [`RobotFileParser`](https://python-all.ru/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser):6263```python64>>> import urllib.robotparser65>>> rp = urllib.robotparser.RobotFileParser()66>>> rp.set_url("http://www.pythontest.net/robots.txt")67>>> rp.read()68>>> rrate = rp.request_rate("*")69>>> rrate.requests70171>>> rrate.seconds72173>>> rp.crawl_delay("*")74675>>> rp.can_fetch("*", "http://www.pythontest.net/")76True77>>> rp.can_fetch("*", "http://www.pythontest.net/no-robots-here/")78False79```80