GoScrapy - เฟรมเวิร์กเว็บสแครปปิงความเร็วสูงพิเศษบนพื้นฐาน Go
(github.com/tech-engine)- เฟรมเวิร์กเว็บสแครปปิงประสิทธิภาพสูงที่นำ สถาปัตยกรรมของ Python Scrapy มาสร้างแบบเนทีฟใหม่ โดยใช้ประสิทธิภาพของภาษา Go
- ใช้คำสั่ง
goscrapy startprojectเพียงบรรทัดเดียวเพื่อทำ scaffolding อัตโนมัติ ตั้งแต่โครงสร้างโปรเจกต์ การเริ่มต้น Go module ไปจนถึงการจัดการ dependency - การสแครปแบบขนานปริมาณงานสูง บนพื้นฐานโมเดล concurrency ของ Go โดยเฟรมเวิร์กจัดการการ retry, การจัดการคุกกี้ และการควบคุม concurrency ให้อัตโนมัติ
- รีทรายอัตโนมัติพร้อมใช้ exponential back-off เมื่อเกิดความล้มเหลว
- สถาปัตยกรรมการไหลของข้อมูลที่ชัดเจนตั้งแต่ Spider → Engine → Scheduler → Worker → Middleware → HTTP Client
- Spider ส่งคำขอไปยัง Engine และ Engine จะทำการจัดตารางผ่าน Scheduler
- Scheduler จัดหา worker ที่พร้อมใช้งานจาก Worker Queue แล้วส่งงานไปยัง Worker
- Worker เรียกใช้ Executor และ Executor จะส่งคำขอไปยัง HTTP Client ผ่าน Middlewares
- การตอบกลับจะถูกส่งย้อนกลับตามลำดับ Middlewares → Executor → callback ของ Spider
- เมื่อ Spider ทำการ yield เรคคอร์ด Engine จะส่งออกข้อมูลไปยัง DB, CSV, ไฟล์ ฯลฯ ผ่าน PipelineManager
- มี export pipeline ในตัวหลากหลายแบบ เช่น CSV, JSON, MongoDB, Google Sheets, Firebase
- มี built-in middleware เช่น Azure TLS และ Dupefilter พร้อมการออกแบบที่สามารถแทนที่หรือขยายได้เกือบทุกเลเยอร์
- พาร์ส HTML ได้อย่างยืดหยุ่นด้วย CSS/XPath selector ที่สามารถ chaining ได้
- ตั้งค่า middleware และ pipeline แบบ รวมศูนย์ ใน
settings.goขณะที่spider.goโฟกัสเฉพาะตรรกะการพาร์ส ทำให้โครงสร้างสะอาด - มีตัวอย่างใช้งานจริง เช่น Google Maps scraper, Fingerprint Spoofing (หลบเลี่ยงการตรวจจับบอต), การมอนิเตอร์แบบเรียลไทม์ด้วย TUI
- ขณะนี้ยังอยู่ในช่วงพัฒนา v0.x และกำลังปรับปรุง Core API อย่างต่อเนื่องเพื่อมุ่งสู่ v1.0 ที่เสถียร
- Business Source License (BSL) : ใช้ในผลิตภัณฑ์เชิงพาณิชย์ได้อย่างอิสระ แต่มีข้อจำกัดในการนำตัวเฟรมเวิร์กเองไปขายต่อเป็นบริการแข่งขัน
ยังไม่มีความคิดเห็น