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.txturl.

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 filen robots.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 nya robots.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ån robots.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 i robots.txt för denna parameter har ogiltig syntax, returneras None.

Tillagd i version 3.6.

request_rate(useragent)

Returnerar innehållet i parametern Request-rate från robots.txt som en named tuple RequestRate(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 i robots.txt för denna parameter har ogiltig syntax, returneras None.

Tillagd i version 3.6.

site_maps()

Returnerar innehållet i parametern Sitemap från robots.txt i form av en list(). Om det inte finns någon sådan parameter eller om posten i robots.txt för denna parameter har ogiltig syntax, returneras None.

Tillagd i version 3.8.

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