ทางเลือกใหม่ดึงข้อมูลน้ำหอมเป็น JSON โดยไม่ต้องปะทะกำแพง Cloudflare
เจาะลึกวิธีดึงข้อมูลโน้ตและเรตติ้งน้ำหอมแบบโครงสร้างจากแหล่งข้อมูลที่ไม่บล็อกคำขอ ช่วยให้นักพัฒนาสร้างแอปแนะนำกลิ่นและค้นหาแฝดน้ำหอมได้ง่ายขึ้น

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ใครที่กำลังพัฒนาโปรเจกต์เกี่ยวกับน้ำหอม ไม่ว่าจะเป็นระบบค้นหาแฝดน้ำหอม ระบบเติมเต็มข้อมูลสินค้า หรือเครื่องมือติดตามเรตติ้ง ล้วนต้องใช้ข้อมูลดิบชุดเดียวกัน นั่นคือโครงสร้างโน้ตน้ำหอม อะคอร์ด และคะแนนรีวิวต่อขวด มากกว่าจะใช้ข้อความรีวิวแบบยาวๆ ความต้องการข้อมูลในลักษณะนี้นั้นสูงมาก โดยสถิติจากแพลตฟอร์ม Apify เผยว่าตัวดึงข้อมูล Fragrantica มีการรันรวมกันมากกว่า 1,700 ครั้ง แต่การเข้าถึงข้อมูลกลับยากขึ้นเรื่อยๆ จนนักพัฒนาต้องเข้าใจปัญหานี้ก่อนเลือกแหล่งข้อมูล
ในอดีต Fragrantica คือฐานข้อมูลน้ำหอมขนาดใหญ่ที่สุด ทำให้กลายเป็นเป้าหมายแรกในการดึงข้อมูล แต่วันนี้ตัวเว็บไซต์ถูกป้องกันด้วย Cloudflare ส่งผลให้บอตหรือสคริปต์ส่วนใหญ่ต้องต่อสู้กับระบบป้องกันนี้ เราจะเห็นตัวดึงข้อมูลบน Apify หลายตัวเริ่มแสดงผลลัพธ์เก่าหรือมีอัตราความสำเร็จต่ำ เนื่องจากเว็บไซต์บล็อกคำขอแบบปกติ ทำให้นักพัฒนาต้องแบกรับต้นทุนค่าพร็อกซี่ ค่าระบบที่ต้องรันซ้ำ และปัญหาท่อส่งข้อมูลพัง ทั้งที่ข้อมูลจริงๆ มีเพียงโน้ต อะคอร์ด และเรตติ้งเท่านั้น
ในทางกลับกัน Parfumo เป็นอีกหนึ่งสารานุกรมน้ำหอมชุมชนขนาดใหญ่ที่มีความลึกและสเกลของข้อมูลเทียบเท่ากัน ทั้งโน้ต อะคอร์ด คะแนนเรตติ้งชุมชนในแต่ละมิติ และเครดิตผู้ปรุงน้ำหอม แต่จุดเด่นคือ Parfumo ยังคงเสิร์ฟหน้า HTML ปกติแบบไม่มีการแคชและไร้ซึ่งการท้าทายจาก Cloudflare ทว่ากลับไม่มีตัวดึงข้อมูลเฉพาะบน Apify เลย ถือเป็นเรื่องน่าสนใจที่ความต้องการข้อมูลชุดนี้สูงมาก แต่เครื่องมือส่วนใหญ่กลับพุ่งเป้าไปที่แหล่งข้อมูลที่กำลังบล็อกนักพัฒนาอยู่
ระบบการจัดเก็บข้อมูลที่ดีจะต้องเก็บข้อมูลในรูปแบบปิรามิด ไม่ใช่แค่รายการโน้ตแบบแบนๆ ยกตัวอย่างข้อมูลจริงของน้ำหอม Dior Sauvage EDT ที่ระบบจัดเก็บประกอบด้วย:
- top: Bergamot, Apple, Blackcurrant, Lemon, Pink pepper
- heart: Pineapple, Indonesian patchouli, Jasmine
- base: Birch, Cedarwood, Musk, Oakmoss, Ambergris
โครงสร้างแบบปิรามิดนี้มีความสำคัญอย่างยิ่งสำหรับระบบค้นหาแฝดน้ำหอม เพราะน้ำหอมสองขวดอาจมีโน้ตฐานเหมือนกันแต่ให้กลิ่นที่แตกต่างกันโดยสิ้นเชิงเนื่องจากโน้ตส่วนบนไม่เหมือนกัน การเปรียบเทียบโครงสร้างปิรามิดจึงแม่นยำกว่าการเปรียบเทียบเซตโน้ตแบบแบน เครื่องมืออย่าง Parfumo Fragrance Scraper บน Apify จึงถูกออกแบบมาให้รับรายการ URL หรือคู่แบรนด์แล้วคืนค่าเป็นเรคอร์ดที่สะอาดหนึ่งชุดต่อ 1 น้ำหอมทันที
ข้อแนะนำสำหรับนักพัฒนาคือ หากคุณมีท่อส่งข้อมูล Fragrantica ที่ทำงานได้ดีอยู่แล้วก็ไม่มีความจำเป็นต้องเปลี่ยนกลางคัน แต่ถ้าคุณกำลังเริ่มต้นพัฒนาโปรเจกต์ใหม่จากศูนย์ ตัวเลขการรัน 1,700 ครั้งบนฝั่ง Fragrantica เป็นเครื่องยืนยันว่าข้อมูลชุดนี้มีคุณค่า น่าค้นหา เพียงแต่ Fragrantica ไม่ใช่สถานที่เดียวที่จะเข้าถึงข้อมูลเหล่านี้ได้ เพราะ Parfumo มีข้อมูลคลาสเดียวกันจากแหล่งที่ไม่พยายามบล็อกคุณจากการอ่านข้อมูล
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น