urllib.robotparser
— Parser för robots.txt¶
Källkod: Lib/urllib/robotparser.py
Den här modulen tillhandahåller en enda klass, RobotFileParser
, som svarar på frågor om huruvida en viss användaragent kan hämta en URL på den webbplats som publicerade filen robots.txt
. För mer information om strukturen i robots.txt
-filer, se http://www.robotstxt.org/orig.html.
- class urllib.robotparser.RobotFileParser(url='')¶
Den här klassen innehåller metoder för att läsa, analysera och svara på frågor om filen
robots.txt
på url.- set_url(url)¶
Ställer in URL:en som hänvisar till en
robots.txt
-fil.
- read()¶
Läser URL:en
robots.txt
och matar den till parsern.
- parse(lines)¶
Analyserar argumentet lines.
- can_fetch(useragent, url)¶
Returnerar
True
om useragent får hämta url enligt de regler som finns i den analyserade filenrobots.txt
.
- mtime()¶
Returnerar den tidpunkt då filen
robots.txt
senast hämtades. Detta är användbart för långkörande webbspindlar som behöver kontrollera om det finns nyarobots.txt
-filer med jämna mellanrum.
- modified()¶
Ställer in tidpunkten för när filen
robots.txt
senast hämtades till aktuell tid.
- crawl_delay(useragent)¶
Returnerar värdet på parametern
Crawl-delay
frånrobots.txt
för användaragenten i fråga. Om det inte finns någon sådan parameter eller om den inte gäller för den angivna användaragenten eller om posten irobots.txt
för denna parameter har ogiltig syntax, returnerasNone
.Tillagd i version 3.6.
- request_rate(useragent)¶
Returnerar innehållet i parametern
Request-rate
frånrobots.txt
som en named tupleRequestRate(requests, seconds)
. Om det inte finns någon sådan parameter eller om den inte gäller för den användaragent som anges eller om posten irobots.txt
för denna parameter har ogiltig syntax, returnerasNone
.Tillagd i version 3.6.
Följande exempel visar grundläggande användning av klassen 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