objectif
Vérifier si une URL est autorisée pour un user-agent donné (sans réseau).
code minimal
from urllib import robotparser
rp = robotparser.RobotFileParser()
rp.parse(["User-agent: *", "Disallow: /private"])
print(rp.can_fetch("*", "https://site.com/private/x") is False) # attendu: True
utilisation
from urllib import robotparser
rp = robotparser.RobotFileParser()
rp.parse(["User-agent: test", "Allow: /public"])
print(rp.can_fetch("test", "https://x/public") is True)
variante(s) utile(s)
from urllib import robotparser
rp = robotparser.RobotFileParser()
rp.set_url("https://data.pm/robots.txt") # ne pas appeler read() ici
print(hasattr(rp, "can_fetch"))
notes
- Utilisez read() en vrai pour charger depuis le réseau (avec timeout).
- Respecter robots.txt réduit les risques d’IP bannies.