สิ่งหนึ่งที่ติดค้างใจมาตลอดจากการทำ crawler หลายครั้งคือ ส่วนใหญ่ดึงข้อมูลครั้งเดียวแล้วจบ ทำให้เรื่องที่อยากรู้จริง ๆ อย่าง “มีอะไรต่างจากเมื่อวาน” (ราคาลดลง・สินค้าใหม่・อันดับเปลี่ยน・รีวิวเปลี่ยน) ต้องกลับเข้าไปดูเองและเทียบเองทุกครั้ง

web_harvester เน้นไปที่การเปิดทิ้งไว้ให้รันต่อเนื่อง แล้วแจ้ง “ความเปลี่ยนแปลง” เหล่านั้นให้ทราบ เพราะสะสมรายการเดิมตามวันที่ลงใน Google Sheets/CSV/Excel/SQL จึงไม่ได้เหลือแค่หนึ่งบรรทัด แต่เหลือแนวโน้มไว้ด้วย และเมื่อมีการเปลี่ยนแปลงที่มีความหมาย ก็จะส่งมาทาง Slack/Discord webhook หรืออีเมลทันที ตั้งรอบการเก็บข้อมูลได้เอง และค่าเริ่มต้นตั้งไว้เป็นความถี่ต่ำ

ฝั่ง no-code ก็ให้ความสำคัญเช่นกัน ระบบค้นหาฟิลด์อัตโนมัติจะหาค่าที่เป็น candidate บนหน้าเว็บ (เช่น ชื่อ・ราคา) มาแสดงให้ดู และแค่ติ๊กเลือกก็แมปให้เลย จึงไม่ต้องเขียนโค้ดแม้แต่น้อย

ส่วนที่สนุกที่สุดในเชิงเทคนิคคือ recon engine เว็บไซต์นี้มี JSON-LD ไหม, ข้อมูลทั้งหมดอยู่ใน NEXT_DATA หรือเปล่า, หรือสุดท้ายต้อง scrape จาก DOM — ผมเบื่อที่ต้องเปิด Developer Tools แล้วเช็กด้วยมือทุกครั้ง จึงลองย้ายการตัดสินใจนั้นมาไว้ในโค้ด โดยรับหน้าตัวอย่างหนึ่งหน้าแล้ววินิจฉัยอัตโนมัติด้วย 5 โหมด (JSON-LD · ตัวแปร window (NEXT_DATA ฯลฯ) · DOM repeat · Google af-data/af-one) เพื่อเลือกเส้นทางการดึงข้อมูลที่ถูกที่สุดและพังยากกว่าเมื่อ UI เปลี่ยน เว็บไซต์ที่เป็น SSR หรือมี JSON ฝังมากับเอกสารจะใช้แบบ server-side ที่เบา ส่วนหน้าที่เป็น dynamic/login จะดึงผ่าน session Chrome ของผู้ใช้เอง (เบราว์เซอร์จริง) แล้วรันโค้ดดึงข้อมูลชุดเดียวกัน แกนหลักของการดึงข้อมูล (field mapping・type conversion・item extraction) ถูกตรึงไว้ด้วย unit test แบบ offline ทำให้ไม่ค่อยกลัวการ refactor

หลักการออกแบบกำหนดไว้ชัดเจนตั้งแต่แรก: ข้อมูลสาธารณะ · สิทธิ์/session ของตนเอง · ความถี่ต่ำ · เคารพ robots ไม่ทำการ bypass CAPTCHA/พร็อกซี

รูปแบบเป็นไฮบริดระหว่างส่วนขยาย Chrome MV3 + Python CLI ผมทำและดูแลอยู่คนเดียว จึงอาจยังมีส่วนที่หยาบอยู่บ้าง ถ้าได้ลองใช้งานจริงแล้วส่งฟีดแบ็ก เช่น “อยากให้มีผลวินิจฉัย recon แบบนี้” หรือ “อยากให้มีแจ้งเตือนความเปลี่ยนแปลงแบบนี้เพิ่ม” จะขอบคุณมากจริง ๆ

ติดตั้งฟรี (Chrome Web Store) แล้วลองใช้ได้ทันที — การเก็บเกี่ยวข้อมูล・การค้นหาฟิลด์・การส่งออก CSV/Sheets ใช้ฟรี (Basic): https://chromewebstore.google.com/detail/…
การตั้ง schedule แบบไร้คนเฝ้า・การแจ้งเตือนความเปลี่ยนแปลงเป็น Pro (จ่ายครั้งเดียว・ช่วงเปิดตัวลด 20% อัตโนมัติ): https://joktnova.gumroad.com/l/figvr/LAUNCH20

ข้อมูลสาธารณะ・สิทธิ์ของตนเอง・ความถี่ต่ำ・เคารพ robots · ไม่มีการ bypass CAPTCHA/พร็อกซี

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น