Ini adalah implementasi protokol eksklusi robots.txt untuk bahasa go (golang).
Untuk membangun dan menjalankan tes menjalankan tes GO di direktori sumber.
Selamat datang.
Terima kasih.
Seperti biasa, tidak diperlukan instalasi khusus, hanya
impor "github.com/temoto/robotstxt"
Jalankan pergi dan Anda siap.
Pertama -tama, Anda perlu mengurai data robot.txt. Anda dapat melakukannya dengan fungsi frombytes (body [] byte) (*robotsdata, kesalahan) atau sama untuk string:
robot, err: = robotstxt.frombytes ([] byte ("User-agent: * ndisallow:")))
robot, err: = robotstxt.fromString ("User-agent: * ndisallow:")
Pada 2012-10-03, FromBytes adalah metode yang paling efisien, yang lainnya adalah pembungkus untuk fungsi inti ini.
Ada beberapa konstruktor yang nyaman untuk berbagai tujuan:
dari respons HTTP. Itu tidak menelepon response.body.close ():
robot, err: = robotstxt.fromResponse (resp)
resp.body.close ()
Jika err! = nil {
log.println ("Kesalahan parsing robots.txt:", err.error ())
}
Fromstatusandstring jika Anda lebih suka membaca byte (string) sendiri. Kode status yang lewat berlaku logika berikut sejalan dengan interpretasi Google tentang file robots.txt:
- Status 2xx -> Badan Parse dengan Frombytes dan menerapkan aturan yang tercantum di sana.
- Status 4xx -> Izinkan semua (bahkan 401/403, seperti yang direkomendasikan oleh Google).
- Lainnya (5xx) -> Larang semua, anggap ini tidak tersedianya sementara.
Parsing robots.txt konten membangun semacam basis data logika, yang dapat Anda tanya dengan (r *robotsdata) testAgent (url, agen string) (bool).
Pengalihan agen eksplisit berguna jika Anda ingin meminta agen yang berbeda. Untuk pengguna agen tunggal ada opsi yang efisien: robotsdata.findgroup (string userAgent) Mengembalikan struktur dengan metode .test (string path) dan .crawldelay time.duration.
Kueri sederhana dengan agen pengguna eksplisit. Setiap panggilan akan memindai semua aturan.
Izinkan: = robots.testagent ("/", "foobot")
Atau meminta beberapa jalur terhadap agen pengguna yang sama untuk kinerja.
grup: = robots.findgroup ("barbot")
group.test ("/")
group.test ("/download.mp3")
group.test ("/news/artikel-2012-1")
Kontributor terhormat (dalam urutan yang tidak ditentukan):
- Ilya Grigorik (Igrigorik)
- Martin Angers (PuerKitobio)
- Micha Gorelick (MyNameSfiber)
Komitmen Awal dan Lainnya: Sergey Shepelev [email protected]