- หลบเลี่ยงโครงสร้างที่ซับซ้อนของเว็บสมัยใหม่และระบบแอนตี้บอต พร้อมรองรับตั้งแต่การส่งคำขอเดี่ยวไปจนถึง การครอว์ลขนาดใหญ่
- มี parser อัจฉริยะ ในตัวที่สามารถค้นหาองค์ประกอบใหม่โดยอัตโนมัติเมื่อโครงสร้างเว็บไซต์เปลี่ยน
- มี โมดูล Fetcher ในตัวที่สามารถหลบเลี่ยงระบบความปลอดภัยหลักอย่าง Cloudflare Turnstile ได้เป็นค่าเริ่มต้น
- รองรับ ความสามารถสำหรับการครอว์ลขนาดใหญ่ ผ่าน เฟรมเวิร์ก Spider เช่น การประมวลผลพร้อมกัน การจัดการเซสชัน การหยุดชั่วคราว/ทำงานต่อ และการสลับพร็อกซี
- API คล้าย Scrapy: ใช้
start_urls, callback parse แบบอะซิงก์ และออบเจ็กต์ Request/Response
- ครอว์ลพร้อมกันและแยกเซสชัน: รันหลายเบราว์เซอร์เซสชันแบบขนานได้
- ฟังก์ชันหยุดชั่วคราวและทำงานต่อบนพื้นฐาน Checkpoint : มีเสถียรภาพแม้ครอว์ลเป็นเวลานาน
- โหมดสตรีมมิงแบบเรียลไทม์: ประมวลผลข้อมูลที่เก็บได้ทันทีหรือสะท้อนไปยัง UI ได้
- ตรวจจับคำขอที่ถูกบล็อกโดยอัตโนมัติ และสามารถลองใหม่ด้วยลอจิกแบบกำหนดเองได้
- ใช้ Hook เพื่อส่งออกผลลัพธ์ไปยังไปป์ไลน์ของตนเองได้ (JSON/JSONL)
- การดึงข้อมูลเว็บไซต์ขั้นสูง ที่รองรับเซสชัน
- คลาส Fetcher รองรับ ความสามารถการส่งคำขอขั้นสูง เช่น HTTP/3, การปลอมลายนิ้วมือ TLS และการอำพรางเฮดเดอร์
- ทำ ระบบอัตโนมัติเบราว์เซอร์บนพื้นฐาน Playwright/Chrome ผ่าน DynamicFetcher
- StealthyFetcher สามารถหลบเลี่ยงการป้องกันแอนตี้บอตอย่าง Cloudflare Turnstile ได้อัตโนมัติ
- ใช้ ProxyRotator เพื่อสลับพร็อกซีในระดับต่อคำขอและ ควบคุมการบล็อกตามโดเมน ได้
- Fetcher ทุกตัวทำงานแบบ อะซิงก์ (async) และมีคลาสเซสชัน (
FetcherSession, DynamicSession เป็นต้น) ให้ใช้งาน
- Adaptive Scraping ช่วยค้นหาองค์ประกอบใหม่โดยอัตโนมัติแม้เว็บไซต์จะเปลี่ยนหลังจากนั้น
- อัลกอริทึมติดตามองค์ประกอบบนพื้นฐานความคล้ายคลึง: เก็บข้อมูลได้ทนทานต่อการเปลี่ยนโครงสร้าง
- รองรับตัวเลือกแบบ CSS/XPath/ข้อความ/regex ทั้งหมด
- มี เซิร์ฟเวอร์ MCP สำหรับการผสาน AI ในตัว: ทำ การดึงข้อมูลแบบมี AI ช่วย ร่วมกับ Claude, Cursor เป็นต้น
- ก่อนเรียกใช้ AI, Scrapling จะคัดเลือกคอนเทนต์เป้าหมายก่อนเพื่อ ลดการใช้โทเคนและเพิ่มความเร็ว
- สถาปัตยกรรมประสิทธิภาพสูง
- ให้ความเร็วในการประมวลผลที่เหนือกว่าไลบรารีสแครป Python ส่วนใหญ่
- ทำงานได้เบาด้วย โครงสร้างที่ใช้หน่วยความจำอย่างมีประสิทธิภาพ และ lazy loading
- ความเร็วในการ serialize JSON เพิ่มขึ้น 10 เท่า, ครอบคลุมการทดสอบ 92% และ มี static type hints ครบถ้วน
- ผ่านการ พิสูจน์ในงานจริง (battle-tested) แล้วจากคอมมูนิตี้เว็บสแครปจำนวนมาก
- มอบประสบการณ์ที่เป็นมิตรกับนักพัฒนา/นักทำเว็บสแครป
- มี Web Scraping Shell แบบโต้ตอบ ในตัว: รองรับการสำรวจแบบเรียลไทม์และการแปลงคำขอบนพื้นฐาน IPython
- ใช้ คำสั่ง CLI เพื่อสแครป URL และดึงไฟล์ได้โดยไม่ต้องเขียนโค้ด
- มี DOM traversal API สำหรับสำรวจความสัมพันธ์แบบพ่อแม่/พี่น้อง/ลูก และความสามารถในการ ค้นหาองค์ประกอบที่คล้ายกัน
- มี ตัวสร้าง selector อัตโนมัติ เพื่อสร้าง CSS/XPath selector ที่เสถียรโดยอัตโนมัติ
- API คล้าย Scrapy/BeautifulSoup: มอบประสบการณ์พัฒนาที่คุ้นเคยสำหรับผู้ใช้เดิม
- เสริมความสะดวกในการดีพลอยด้วย การวิเคราะห์แบบสแตติกบนพื้นฐาน PyRight/MyPy และ การสร้าง Docker image อัตโนมัติ
- เบนช์มาร์กประสิทธิภาพ
- parser ของ Scrapling เร็วกว่า Parsel/Scrapy เล็กน้อย และ
ทำความเร็วได้ สูงสุดมากกว่า 700 เท่า เมื่อเทียบกับ BeautifulSoup4 (bs4)
- ประสิทธิภาพการค้นหาองค์ประกอบตามความคล้ายคลึง ก็ทำได้ เร็วกว่า 5 เท่า เมื่อเทียบกับ AutoScraper
- ติดตั้งได้ด้วย
pip install scrapling หรือ
มี Docker image ให้ใช้งานเพื่อจัดสภาพแวดล้อมการทำงานแบบครบถ้วนรวมเบราว์เซอร์ docker pull pyd4vinci/scrapling
- ไลเซนส์ BSD-3-Clause
3 ความคิดเห็น
ตามกฎหมายไม่มีปัญหาใช่ไหมครับ??? ผมเคยเห็นมาว่าการดึงข้อมูลออนไลน์ไปนั้นไม่ถือว่ามีปัญหา..
แต่อยากรู้ว่าถ้าเลี่ยงข้อจำกัดที่เว็บไซต์ตั้งไว้เพื่อไม่ให้ครอว์ล แล้วเข้าไปอ่าน จะไม่มีความเสียหายอะไรหรือเปล่า
หรือว่ามีความเสี่ยงเฉพาะข้อมูลที่ดูได้หลังล็อกอินเท่านั้น?
> with FetcherSession(impersonate='chrome') as session: # Use latest version of Chrome's TLS fingerprint
น่าสนใจดีนะครับ ปกติผมต้องค้นหาแล้วใส่เองแบบแมนนวลตลอด นี่เป็นครั้งแรกที่เห็นไลบรารีแบบนี้ คิดว่าน่าจะสะดวกดี
แต่ก็ยังสงสัยอยู่ว่าเขาข้าม Cloudflare กันยังไง คงต้องดูโค้ดสักรอบถึงจะรู้