GoScrapy - Framework web scraping supercepat berbasis Go
(github.com/tech-engine)- Framework web scraping berperforma tinggi yang mengimplementasikan secara native arsitektur Scrapy milik Python dengan memanfaatkan performa bahasa Go
- Dengan satu baris perintah
goscrapy startproject, scaffolding otomatis untuk struktur proyek, inisialisasi modul Go, hingga penyelesaian dependensi - Scraping paralel throughput tinggi berbasis model konkurensi Go; framework menangani otomatis retry, manajemen cookie, dan pemrosesan konkurensi
- Retry otomatis dengan exponential back-off saat terjadi kegagalan
- Arsitektur alur data yang jelas: Spider → Engine → Scheduler → Worker → Middleware → HTTP Client
- Spider meneruskan request ke Engine, lalu Engine menjadwalkannya ke Scheduler
- Scheduler mengamankan worker yang tersedia dari Worker Queue, lalu meneruskan tugas ke Worker
- Worker memicu Executor, dan Executor mengirim request ke HTTP Client melalui Middlewares
- Response dikembalikan dalam urutan terbalik: Middlewares → Executor → callback Spider
- Saat Spider me-
yieldrecord, Engine mengekspor data ke DB, CSV, file, dan lain-lain melalui PipelineManager
- Pipeline ekspor untuk CSV, JSON, MongoDB, Google Sheets, Firebase, dan lainnya sudah tersedia secara bawaan
- Menyediakan middleware bawaan seperti Azure TLS dan Dupefilter, dengan desain yang memungkinkan hampir semua layer diganti atau diperluas
- Parsing HTML yang fleksibel dengan selector CSS/XPath yang bisa di-chain
- Struktur yang rapi: middleware dan pipeline dikonfigurasi secara terpusat di
settings.go, sementaraspider.gofokus hanya pada logika parsing - Menyediakan contoh nyata seperti scraper Google Maps, Fingerprint Spoofing (menghindari deteksi bot), dan pemantauan real-time berbasis TUI
- Saat ini masih pada tahap pengembangan v0.x, dengan Core API yang terus diperbaiki menuju v1.0 yang stabil
- Business Source License (BSL): bebas digunakan pada produk komersial, tetapi dibatasi untuk menjual ulang framework itu sendiri sebagai layanan pesaing
Belum ada komentar.