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.txtpå url.- set_url(url)¶
Ställer in URL:en som hänvisar till en
robots.txt-fil.
- read()¶
Läser URL:en
robots.txtoch matar den till parsern.
- parse(lines)¶
Analyserar argumentet lines.
- can_fetch(useragent, url)¶
Returnerar
Trueom useragent får hämta url enligt de regler som finns i den analyserade filenrobots.txt.
- mtime()¶
Returnerar den tidpunkt då filen
robots.txtsenast 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.txtsenast hämtades till aktuell tid.
- crawl_delay(useragent)¶
Returnerar värdet på parametern
Crawl-delayfrånrobots.txtfö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.txtför denna parameter har ogiltig syntax, returnerasNone.Tillagd i version 3.6.
- request_rate(useragent)¶
Returnerar innehållet i parametern
Request-ratefrånrobots.txtsom 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.txtfö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