- วิดีโอสแครปิง: ป้อนวิดีโอบันทึกหน้าจอเข้าโมเดล Google Gemini เพื่อแปลงเป็นข้อมูลแบบมีโครงสร้าง
- ใช้โมเดลภาพ: ใช้ Gemini, GPT-4o, Claude 3.7 เป็นต้น เพื่อดึงข้อมูลจากภาพและ PDF ที่ไม่มีโครงสร้าง
- ใช้ไลบรารีสมัยใหม่อย่าง Playwright: ทำงานอัตโนมัติบนเบราว์เซอร์ และผสานการทำงานกับโมเดลวิเคราะห์วิดีโอ/ภาพ
- เวิร์กช็อปแบบอินเทอร์แอ็กทีฟความยาว 1 ชั่วโมงที่ Simon Willison จัดในงานประชุมด้าน data journalism NICAR 2025
โครงสร้างเวิร์กช็อป
1. Git scraping
- Git scraper คืออะไร?
- ใช้ GitHub Actions เพื่อสแครปเว็บไซต์หรือรีซอร์สเป็นประจำ และบันทึกการเปลี่ยนแปลงได้
- ตั้งค่าได้ง่ายโดยคัดลอกจาก template repo ใน GitHub repository
- หากใส่ URL ของเว็บไซต์หรือไฟล์ JSON ที่ต้องการ ระบบจะรันอัตโนมัติทุกวัน
- สามารถสร้าง RSS feed ได้โดยเติม
.atom ต่อท้าย URL ของหน้าคอมมิตในรีโพซิทอรี
- ติดตามการเปลี่ยนแปลงของเว็บไซต์แบบเรียลไทม์ผ่าน RSS reader ได้
2. JavaScript scraping ภายในเบราว์เซอร์
- เว็บไซต์ที่ซับซ้อนอาจดึงข้อมูลได้ยากหากใช้เพียงการ parse HTML แบบง่าย
- สามารถสแครปได้ด้วย JavaScript หลังจากหน้าเว็บโหลดเสร็จในเบราว์เซอร์จริง
- การดึงข้อมูลตาราง: ใช้ JavaScript ในเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์เพื่อแปลงข้อมูลตารางเป็น JSON ได้
- การจัดการหน้า infinite scroll: ใช้ JavaScript รวบรวมคอนเทนต์ที่ถูกเพิ่มอย่างต่อเนื่องบนหน้าเว็บได้อัตโนมัติ
- การทำงานอัตโนมัติด้วย shot-scraper:
- ใช้คำสั่งเฉพาะเพื่อจับภาพหน้าจอทั้งเว็บเพจได้
- รันโค้ด JavaScript แล้วส่งออกข้อมูลเป็นรูปแบบ JSON ได้
3. การดึงข้อมูลแบบมีโครงสร้างด้วย LLM
- ใช้ LLM (Large Language Model) เพื่อแปลงข้อมูลที่ไม่มีโครงสร้างให้เป็นข้อมูลแบบมีโครงสร้างได้
- ต้องมี API key ของ OpenAI และ Google Gemini
- รันได้ทั้งใน Codespaces หรือสภาพแวดล้อม Python บนเครื่องโลคัล
- การดึงข้อมูลด้วยสคีมา
- สคีมา (schema) คือการกำหนดรูปแบบข้อมูลที่ LLM จะต้องส่งกลับ
- ตัวอย่างเช่น สามารถกำหนด title, URL, date ฯลฯ ในสคีมาเพื่อดึงข้อมูลให้ออกมาในรูปแบบที่สม่ำเสมอ
- เมื่อสแครปข้อมูลจากเว็บเพจ ก็สามารถส่งออกตามสคีมาได้
- การคำนวณต้นทุนและการเลือกโมเดล
- แต่ละโมเดลมีค่าใช้จ่ายตามจำนวน input และ output token
- โมเดล GPT-4o mini มีราคาถูก แต่โมเดลอื่นอาจมีต้นทุนสูงกว่า
- ตัวอย่างเช่น GPT-4.5 อาจมีค่าใช้จ่ายสูงกว่ามากสำหรับงานเดียวกัน
- โมเดล Gemini มีราคาค่อนข้างประหยัดและมีตัวเลือกหลากหลาย
- การดึงข้อมูลจาก PDF
- สามารถดึงข้อมูลจากเอกสาร PDF อย่าง FEMA Daily Operations Briefing ได้
- โมเดล Gemini รับไฟล์ PDF เป็นอินพุตและส่งออกเป็น JSON แบบมีโครงสร้างได้
- ดึงตารางหรือข้อความเฉพาะจาก PDF ได้
- การดึงข้อมูลจากภาพ
- GPT-4o สามารถดึงข้อมูลจากภาพได้
- ป้อนภาพสกรีนช็อตเข้าโมเดลแล้วให้ส่งออกข้อมูลแบบมีโครงสร้างได้
- เคล็ดลับการเลือกโมเดล
- โมเดล Gemini 2.0 Pro ใช้งานได้ฟรี แต่มีข้อจำกัดด้านความเร็วที่เข้มงวด
- ควรทดสอบหลายโมเดลโดยคำนึงถึงทั้งประสิทธิภาพและความคุ้มค่าของต้นทุน
- ขึ้นอยู่กับลักษณะของเว็บเพจ บางครั้ง shot-scraper อาจมีประโยชน์มากกว่า LLM
- ความท้าทายในการจัดการข้อมูลที่ซับซ้อน
- เมื่อต้องดึงข้อมูลจากอินโฟกราฟิกหรือแผนที่ที่ซับซ้อน ประสิทธิภาพของแต่ละโมเดลอาจต่างกัน
- จึงควรลองหลายโมเดลเพื่อเลือกตัวที่ให้ผลลัพธ์ดีที่สุด
4. วิดีโอสแครปิงด้วย Google AI Studio
- วิดีโอสแครปิง เป็นวิธีที่ทรงพลังสำหรับดึงข้อมูลจากเว็บไซต์ที่สแครปด้วยวิธีทั่วไปได้ยาก
- โมเดล Google Gemini รับวิดีโอเป็นอินพุตและแปลงเป็นข้อมูลแบบมีโครงสร้างในรูปแบบ JSON ได้
- สามารถบันทึกหน้าจอแล้วนำวิดีโอนั้นป้อนเข้าโมเดล AI เพื่อดึงข้อมูลได้
- ขั้นตอนของวิดีโอสแครปิง
- ไปยังส่วนของเว็บไซต์ที่มีข้อมูลที่ต้องการ
- เปิดเครื่องมือบันทึกหน้าจอ (เช่น QuickTime Player)
- ท่องเว็บไซต์ → หยุดค้างไว้ชั่วคราวในส่วนสำคัญ
- อัปโหลดวิดีโอที่บันทึกไว้ไปยัง Google AI Studio
- เขียน model prompt ใน AI Studio แล้วดึงข้อมูล
- ใช้เครื่องมือดึงข้อมูลตามสคีมาเพื่อจัดข้อมูลให้อยู่ในรูปแบบ JSON ได้
- ข้อดีของวิดีโอสแครปิง
- เลี่ยงความซับซ้อนของโครงสร้างเว็บไซต์ได้
- มีประโยชน์กับเว็บที่ต้องอาศัยการเรนเดอร์ด้วย JavaScript
- ดึงข้อมูลได้หลากหลายภายในหน้าเดียว เช่น ข้อความ ตาราง และภาพ
- ข้อควรระวัง
- ฟีเจอร์ส่วนใหญ่ใน AI Studio ใช้งานได้ฟรี แต่ข้อมูลที่ป้อนเข้าไปอาจถูกนำไปใช้ฝึกโมเดล
- ไม่ควรป้อนข้อมูลที่มีความสำคัญด้านความปลอดภัย
- สำหรับเว็บไซต์ที่ซับซ้อน วิดีโอสแครปิงอาจมีประสิทธิภาพกว่าวิธีสแครปแบบอื่น
- ตัวเลือกสตรีมแบบเรียลไทม์
- ใช้ตัวเลือก Stream Realtime ของ AI Studio เพื่อดึงข้อมูลแบบเรียลไทม์ได้
- อาจได้ผลดีกับคอนเทนต์แบบไดนามิกที่สแครปได้ยาก
- การนำไปใช้ในห้องข่าว
- มีประโยชน์สำหรับการดึงข้อมูลที่ซับซ้อนและการทำงานอัตโนมัติในห้องข่าว
- สามารถทดสอบประสิทธิภาพและความแม่นยำของโมเดล Gemini เพื่อหาแนวทางที่เหมาะสมที่สุด
- หลังเวิร์กช็อปยังสามารถร่วมมือและแลกเปลี่ยนฟีดแบ็กกันได้
เครื่องมือและเอกสารเพิ่มเติม
3 ความคิดเห็น
อืม.. การใช้ GitHub Actions น่าจะเป็นการละเมิดนโยบายของ GitHub นะ
ถ้ามีสำหรับ Android ด้วยก็คงจะดีมาก
ถ้ามีฟังก์ชันหลบเลี่ยงการป้องกันมาโครได้.. ก็น่าจะกลายเป็นผู้ชนะของตลาดครับ