Dies ist eine Robots.txt -Ausschlussprotokoll -Implementierung für Go Language (Golang).
So erstellen und durchführen Sie Tests GO -Test im Quellverzeichnis.
Herzlich willkommen.
Danke schön.
Wie üblich ist keine spezielle Installation erforderlich, gerade
Importieren "github.com/temoto/robotstxt"
Laufen Sie Go Get und Sie sind bereit.
Zunächst müssen Sie Robots.txt -Daten analysieren. Sie können es mit Funktionen von Bytes (Body [] Byte) (*RobotsData, Fehler) oder gleicher für String:
Roboter, err: = robotstxt.frombytes ([] byte ("Benutzer-Agent: * nDisallow:"))
Roboter, err: = robotstxt.fromstring ("Benutzer-Agent: * nDisallow:")
Ab 2012-10-03 ist von Bytes die effizienteste Methode, alles andere ist ein Wrapper für diese Kernfunktion.
Es gibt nur wenige bequeme Konstruktoren für verschiedene Zwecke:
Aus HTTP -Antwort. Es wird nicht beantwortet.body.close ():
Roboter, err: = robotstxt.fromResponse (resp)
resp.body.close ()
Wenn er! = nil {
log.println ("Fehler analysieren Robots.txt:", err.Error ())
}
Von statusandString, wenn Sie es vorziehen, Bytes (Zeichenfolge) selbst zu lesen. Das Übergeben von Statuscode gilt der Beendigung der Logik in Übereinstimmung mit der Interpretation von Robots.txt -Dateien durch Google:
- Status 2xx -> Körper mit From -Bytes analysieren und dort aufgeführt werden.
- Status 4xx -> ALLES (sogar 401/403, wie von Google empfohlen).
- Andere (5xx) -> Alle nicht zulassen, betrachten dies als vorübergehende Nichtverfügbarkeit.
Analyse von Robots.txt -Inhalten erstellt eine Art Logikdatenbank, die Sie mit (r *RobotsData) Testagent (URL, Agent String) (BOOL) abfragen können.
Eine explizite Übergabe des Agenten ist nützlich, wenn Sie nach verschiedenen Agenten abfragen möchten. Für einzelne Agent -Benutzer gibt es eine effiziente Option: RobotsData.FindGroup (UserAgent String) gibt eine Struktur mit .test (Path -String) -Methode und .crawldelay -Zeit.Duration zurück.
Einfache Abfrage mit explizitem Benutzeragenten. Jeder Anruf scannt alle Regeln.
erlauben: = roboots.testAgent ("/", "foobot")
Oder fragen Sie mehrere Pfade gegen denselben Benutzeragenten zur Leistung.
Gruppe: = Robots.Findgroup ("Barbot")
Gruppe.test ("/")
Gruppe.test ("/download.mp3")
Gruppe.test ("/news/article-2012-1")
Honorable -Mitwirkende (in undefinierter Reihenfolge):
- Ilya Grigorik (iGrigorik)
- Martin Angers (Puerkitobio)
- Micha Gorelick (MyNameisfiber)
Erstes Commit und andere: Sergey Shepelev [email protected]