urllib.robotparser
— Parser for robots.txt¶
Вихідний код: Lib/urllib/robotparser.py
Цей модуль надає єдиний клас, RobotFileParser
, який відповідає на питання про те, чи може певний агент користувача отримати URL-адресу на веб-сайті, який опублікував файл robots.txt
. Щоб отримати докладнішу інформацію про структуру файлів robots.txt
, див. http://www.robotstxt.org/orig.html.
- 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
.Added in version 3.6.
- request_rate(useragent)¶
Повертає вміст параметра
Request-rate
зrobots.txt
як named tupleRequestRate(requests, seconds)
. Якщо такого параметра немає або він не застосовується до вказаного useragent або записrobots.txt
для цього параметра має недійсний синтаксис, повернітьNone
.Added in version 3.6.
Наступний приклад демонструє базове використання класу RobotFileParser
:
>>> import urllib.robotparser
>>> rp = urllib.robotparser.RobotFileParser()
>>> rp.set_url("http://www.musi-cal.com/robots.txt")
>>> rp.read()
>>> rrate = rp.request_rate("*")
>>> rrate.requests
3
>>> rrate.seconds
20
>>> rp.crawl_delay("*")
6
>>> rp.can_fetch("*", "http://www.musi-cal.com/cgi-bin/search?city=San+Francisco")
False
>>> rp.can_fetch("*", "http://www.musi-cal.com/")
True