Il s'agit d'une implémentation de protocole d'exclusion robots.txt pour le langage GO (Golang).
Pour construire et exécuter les tests, exécutez le test dans le répertoire source.
Bienvenue chaleureuse.
Merci.
Comme d'habitude, aucune installation spéciale n'est requise, juste
Importer "github.com/temoto/robotstxt"
Run, allez-y et vous êtes prêt.
Tout d'abord, vous devez analyser les données robots.txt. Vous pouvez le faire avec des fonctions deBytes (body [] octet) (* robotsdata, erreur) ou même pour la chaîne:
robots, err: = robotstxt.frombytes ([] byte ("user-agent: * ndisallow:"))
robots, err: = robotstxt.fromstring ("user-agent: * ndisallow:")
Depuis 2012-10-03, FromBytes est la méthode la plus efficace, tout le reste est un wrapper pour cette fonction centrale.
Il y a peu de constructeurs pratiques à diverses fins:
de la réponse HTTP. Il n'appelle pas la réponse.body.close ():
robots, err: = robotstxt.fromResponse (resp)
resp.body.close ()
Si err! = Nil {
Log.println ("Error Parsing Robots.txt:", err.Error ())
}
NORSTATUSANDSTRING si vous préférez lire les octets (chaîne) vous-même. Le code d'état de réussite s'applique à la logique suivante en ligne avec l'interprétation de Google des fichiers Robots.txt:
- Statut 2xx -> Panner le corps avec des bytes et appliquer des règles répertoriées.
- Statut 4xx -> Autoriser tout (même 401/403, comme recommandé par Google).
- Autre (5xx) -> interdire tout, considérez cela comme une indisponibilité temporaire.
Analyse Robots.txt Contenu Créez une sorte de base de données logique, que vous pouvez interroger avec (R * RobotsData) testagent (URL, agent String) (bool).
Le passage explicite de l'agent est utile si vous souhaitez interroger différents agents. Pour les utilisateurs d'agents uniques, il existe une option efficace: RobotsData.FindGroup (UserAgent String) renvoie une structure avec la méthode .test (Path String) et .crawldelay time.Duration.
Requête simple avec un agent utilisateur explicite. Chaque appel analysera toutes les règles.
Autoriser: = robots.testagent ("/", "foobot")
Ou interrogez plusieurs chemins contre le même agent utilisateur pour les performances.
Groupe: = Robots.FindGroup ("Barbot")
groupe.test ("/")
groupe.test ("/ download.mp3")
groupe.test ("/ news / article-2012-1")
Contributeurs honorables (par ordre non défini):
- Ilya Grigorik (Igrigorik)
- Martin Angers (Puerkitobio)
- Micha Gorelick (MyNameisfiber)
Commit initial et autre: Sergey Shepelev [email protected]