> **Источник:** https://python-all.ru/3.1/library/urllib.robotparser.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 20.9. `urllib.robotparser` – Парсер для robots.txt

Этот модуль предоставляет один класс [`RobotFileParser`](https://python-all.ru/3.1/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser), который отвечает на вопросы, может ли конкретный пользовательский агент загрузить URL на веб-сайте, опубликовавшем файл `robots.txt`. Подробнее о структуре файлов `robots.txt` см. [http://www.robotstxt.org/orig.html](https://python-all.ru/3.1/library/urllib.robotparser.html).

#### `class urllib.robotparser.RobotFileParser`

Этот класс предоставляет набор методов для чтения, разбора и ответа на вопросы об одном `robots.txt` файле.

#### `set_url(url)`

Устанавливает URL, указывающий на файл

`robots.txt`

.

#### `read()`

Читает URL файла

`robots.txt`

и передает его парсеру.

#### `parse(lines)`

Разбирает аргумент lines.

#### `can_fetch(useragent, url)`

Возвращает

`True`

, если

*useragent*

разрешено загружать

*url*

в соответствии с правилами, содержащимися в обработанном файле

`robots.txt`

.

#### `mtime()`

Возвращает время последней загрузки файла

`robots.txt`

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

`robots.txt`

.

#### `modified()`

Устанавливает время последней загрузки файла

`robots.txt`

на текущее время.

Следующий пример демонстрирует базовое использование класса RobotFileParser.

```python
>>> import urllib.robotparser
>>> rp = urllib.robotparser.RobotFileParser()
>>> rp.set_url("http://www.musi-cal.com/robots.txt")
>>> rp.read()
>>> rp.can_fetch("*", "http://www.musi-cal.com/cgi-bin/search?city=San+Francisco")
False
>>> rp.can_fetch("*", "http://www.musi-cal.com/")
True
```
