36 คะแนน โดย xguru 2025-03-13 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • วิดีโอสแครปิง: ป้อนวิดีโอบันทึกหน้าจอเข้าโมเดล 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 เพื่อดึงข้อมูลได้
  • ขั้นตอนของวิดีโอสแครปิง
    1. ไปยังส่วนของเว็บไซต์ที่มีข้อมูลที่ต้องการ
    2. เปิดเครื่องมือบันทึกหน้าจอ (เช่น QuickTime Player)
    3. ท่องเว็บไซต์ → หยุดค้างไว้ชั่วคราวในส่วนสำคัญ
    4. อัปโหลดวิดีโอที่บันทึกไว้ไปยัง Google AI Studio
    5. เขียน model prompt ใน AI Studio แล้วดึงข้อมูล
    6. ใช้เครื่องมือดึงข้อมูลตามสคีมาเพื่อจัดข้อมูลให้อยู่ในรูปแบบ JSON ได้
  • ข้อดีของวิดีโอสแครปิง
    • เลี่ยงความซับซ้อนของโครงสร้างเว็บไซต์ได้
    • มีประโยชน์กับเว็บที่ต้องอาศัยการเรนเดอร์ด้วย JavaScript
    • ดึงข้อมูลได้หลากหลายภายในหน้าเดียว เช่น ข้อความ ตาราง และภาพ
  • ข้อควรระวัง
    • ฟีเจอร์ส่วนใหญ่ใน AI Studio ใช้งานได้ฟรี แต่ข้อมูลที่ป้อนเข้าไปอาจถูกนำไปใช้ฝึกโมเดล
    • ไม่ควรป้อนข้อมูลที่มีความสำคัญด้านความปลอดภัย
    • สำหรับเว็บไซต์ที่ซับซ้อน วิดีโอสแครปิงอาจมีประสิทธิภาพกว่าวิธีสแครปแบบอื่น
  • ตัวเลือกสตรีมแบบเรียลไทม์
    • ใช้ตัวเลือก Stream Realtime ของ AI Studio เพื่อดึงข้อมูลแบบเรียลไทม์ได้
    • อาจได้ผลดีกับคอนเทนต์แบบไดนามิกที่สแครปได้ยาก
  • การนำไปใช้ในห้องข่าว
    • มีประโยชน์สำหรับการดึงข้อมูลที่ซับซ้อนและการทำงานอัตโนมัติในห้องข่าว
    • สามารถทดสอบประสิทธิภาพและความแม่นยำของโมเดล Gemini เพื่อหาแนวทางที่เหมาะสมที่สุด
    • หลังเวิร์กช็อปยังสามารถร่วมมือและแลกเปลี่ยนฟีดแบ็กกันได้

เครื่องมือและเอกสารเพิ่มเติม

  • git-scraper-template – เทมเพลตสำหรับตั้งค่า Git scraping
  • shot-scraper-template – เทมเพลตสำหรับทำงานอัตโนมัติในการจับภาพเว็บเพจ
  • shot-scraper har - สร้าง HTML archive และสร้างไฟล์บีบอัดด้วย --zip ได้ด้วย (รวม JSON และแอสเซ็ตอื่นๆ)
  • git-history – แปลงบันทึกคอมมิตของ Git เป็นฐานข้อมูล SQLite

3 ความคิดเห็น

 
roxie 2025-03-16

อืม.. การใช้ GitHub Actions น่าจะเป็นการละเมิดนโยบายของ GitHub นะ

 
lighteach 2025-03-14

ถ้ามีสำหรับ Android ด้วยก็คงจะดีมาก

 
wantutopia 2025-03-13

ถ้ามีฟังก์ชันหลบเลี่ยงการป้องกันมาโครได้.. ก็น่าจะกลายเป็นผู้ชนะของตลาดครับ