วิธีดึงข้อมูลราคาจาก Google Hotels ด้วย API สำหรับนักพัฒนา

8 นาที 7 views บันทึกเป็น PDF
วิธีดึงข้อมูลราคาจาก Google Hotels ด้วย API สำหรับนักพัฒนา

อยากทำแอปท่องเที่ยวแต่ดึงข้อมูลราคาจาก Google Hotels ไม่ได้? มาดูวิธีใช้ Apify Actor ช่วยดึงข้อมูลแบบอัตโนมัติด้วย Python ง่ายๆ ไม่ต้องกลัวเว็บพัง

ทำไมการดึงข้อมูลราคาจาก Google Hotels ถึงเป็นเรื่องท้าทาย

เวลาเราอยากทำแอปพลิเคชันเกี่ยวกับท่องเที่ยว หรืออยากเปรียบเทียบราคาที่พัก สิ่งแรกที่หลายคนนึกถึงคือการดึงข้อมูลจาก Google Hotels เพราะเป็นแหล่งรวมข้อมูลที่พักทั่วโลกที่ใหญ่ที่สุด แต่ในความเป็นจริงแล้ว Google ไม่มี Public API (ช่องทางสื่อสารสำหรับดึงข้อมูลที่เปิดให้คนทั่วไปใช้งาน) ให้เราเรียกใช้เพื่อดูราคาที่แสดงอยู่บนหน้าจอได้โดยตรงเลย

ในอดีต Google เคยมีโปรแกรมสำหรับพันธมิตรโรงแรม แต่ปัจจุบันได้ปิดรับผู้ใช้งานใหม่ไปนานแล้ว และไม่มีเครื่องมืออื่นมาทดแทนอย่างเป็นทางการ ทำให้คนที่อยากได้ข้อมูลราคาแบบ Structured Data (ข้อมูลที่มีโครงสร้างจัดระเบียบไว้แล้ว เช่น ตารางหรือไฟล์ JSON) ต้องหาวิธีอื่นมาแก้ปัญหานี้ด้วยตัวเอง

สำหรับนักพัฒนาที่เพิ่งเริ่มต้น การจะดึงข้อมูลจากหน้าเว็บโดยตรง หรือที่เรียกว่า Web Scraping (การเขียนโปรแกรมดึงข้อมูลจากหน้าเว็บไซต์) นั้นไม่ใช่เรื่องง่าย เพราะโครงสร้างหน้าเว็บของ Google มีความซับซ้อนและเปลี่ยนแปลงอยู่ตลอดเวลา ทำให้โปรแกรมที่เขียนไว้มักจะพังหรือแสดงผลผิดพลาดเมื่อ Google มีการอัปเดตหน้าตาเว็บไซต์

ทำไมโปรแกรมดึงข้อมูลส่วนใหญ่ถึงใช้งานไม่ได้นาน

ปัญหาหลักของหน้าเว็บ Google Hotels คือข้อมูลราคา คะแนนรีวิว หรือข้อเสนอจากตัวแทนขาย ไม่ได้ถูกจัดวางในรูปแบบที่อ่านง่าย แต่มันถูกเก็บอยู่ใน Positional Arrays (ชุดข้อมูลที่ระบุตำแหน่งด้วยลำดับตัวเลข) ซึ่งหมายความว่าข้อมูลแต่ละอย่างถูกระบุด้วยตำแหน่งที่ตั้ง ไม่ใช่ชื่อหัวข้อที่ชัดเจน

สมมติว่าคุณเขียนโปรแกรมให้ไปหยิบข้อมูลที่ตำแหน่งเลข 5 มาแสดงเป็น "ราคาต่อคืน" แต่ถ้าวันดีคืนดี Google เปลี่ยนลำดับการวางข้อมูลใหม่ ข้อมูลที่ตำแหน่งเลข 5 อาจกลายเป็น "คะแนนรีวิว" แทน ทำให้โปรแกรมของคุณทำงานผิดพลาดโดยที่มันไม่รู้ตัวเลยว่ากำลังดึงข้อมูลผิดชุดมาให้คุณ

การจะรักษาให้โปรแกรมดึงข้อมูลทำงานได้ตลอดรอดฝั่ง คุณต้องมี Fixtures (ข้อมูลตัวอย่างที่ใช้ทดสอบ) สำหรับทุกรูปแบบการตอบกลับ และต้องมีระบบตรวจสอบที่แจ้งเตือนทันทีเมื่อโครงสร้างหน้าเว็บเปลี่ยนไป ซึ่งเป็นงานที่หนักมากสำหรับโปรแกรมเมอร์มือใหม่ที่เพิ่งเริ่มฝึกฝน

ทางเลือกใหม่สำหรับนักพัฒนาด้วย Apify Actor

เมื่อการสร้างเครื่องมือดึงข้อมูลด้วยตัวเองทำได้ยาก ทางเลือกที่ฉลาดกว่าคือการใช้ Apify Actor (โปรแกรมสำเร็จรูปที่รันบนคลาวด์เพื่อทำงานดึงข้อมูล) ซึ่งเป็นเครื่องมือที่ช่วยจัดการเรื่องความซับซ้อนของโครงสร้างหน้าเว็บไว้ให้หมดแล้ว คุณแค่ส่งคำสั่งไป แล้วรอรับผลลัพธ์ที่จัดระเบียบมาให้เรียบร้อย

ข้อดีของการใช้ Actor ที่มีการดูแลอยู่ตลอดเวลาคือ คุณไม่ต้องกังวลเรื่อง Proxy (เซิร์ฟเวอร์ตัวกลางที่ช่วยปกปิดตัวตนหรือหลบเลี่ยงการบล็อก) เพราะระบบจัดการให้เองทั้งหมด และถ้าวันไหนที่ Google เปลี่ยนโครงสร้างหน้าเว็บจนระบบดึงไม่ได้ Actor จะแจ้งเตือนด้วยสถานะที่ชัดเจน แทนที่จะคืนค่าว่างเปล่ากลับมาให้คุณเสียเวลาตรวจสอบ

หากคุณกำลังทำโปรเจกต์อย่างแอปท่องเที่ยว หรืออยากสร้าง AI Agent (โปรแกรมปัญญาประดิษฐ์ที่ทำงานแทนมนุษย์) ที่ต้องการข้อมูลราคาแบบเรียลไทม์ การเรียกใช้ผ่าน API ของ Apify จะช่วยให้คุณประหยัดเวลาในการดูแลรักษาโค้ด และเอาเวลาไปโฟกัสกับการพัฒนาฟีเจอร์หลักของแอปคุณได้มากกว่า

ตัวอย่างการใช้งานดึงข้อมูลด้วย Python

ก่อนจะเริ่มเขียนโค้ด คุณต้องติดตั้งไลบรารีของ Apify ผ่านคำสั่ง pip install apify-client ในหน้า Terminal (โปรแกรมพิมพ์คำสั่งสำหรับควบคุมคอมพิวเตอร์) ของคุณก่อน จากนั้นจึงเริ่มเรียกใช้งานผ่านโค้ด Python เพื่อดึงข้อมูลโรงแรมในจุดหมายที่คุณต้องการ

from apify_client import ApifyClient

# เชื่อมต่อกับระบบด้วย Token ของคุณ
client = ApifyClient("YOUR_APIFY_TOKEN")

# สั่งให้ Actor เริ่มทำงานค้นหาโรงแรม
run = client.actor("yappman/google-hotels-prices").call(
    run_input={
        "mode": "search",
        "searches": [{"destination": "Lisbon", "checkIn": "2026-10-12", "checkOut": "2026-10-14", "adults": 2}],
        "maxItems": 10
    }
)

# วนลูปอ่านข้อมูลจากผลลัพธ์ที่ได้
for row in client.dataset(run.default_dataset_id).iterate_items():
    print(row["name"], row["leadPrice"]["perNight"])

โค้ดด้านบนเริ่มต้นด้วยการเรียกใช้ ApifyClient เพื่อสร้างการเชื่อมต่อ จากนั้นส่งคำสั่งไปยัง Actor ด้วยพารามิเตอร์ปลายทางและวันที่เข้าพัก สุดท้ายคือการวนลูปเพื่อดึงชื่อโรงแรมและราคาต่อคืนออกมาแสดงผล

ผลลัพธ์ที่ได้จะเป็นรายชื่อโรงแรมพร้อมราคา เช่น "Independente Principe Real 120.76" ซึ่งข้อมูลนี้คือข้อมูลจริงที่ดึงออกมาจาก Google Hotels ในรูปแบบที่พร้อมเอาไปใช้งานต่อในโปรเจกต์ของคุณทันที

การจัดการข้อมูลขั้นสูงและการวิเคราะห์ราคา

นอกจากราคาเริ่มต้นแล้ว คุณยังสามารถสั่งให้ดึง Vendor Rates (ราคาจากตัวแทนจำหน่ายหลายแห่ง เช่น Booking.com หรือ Agoda) ได้ด้วย ซึ่งข้อมูลส่วนนี้มีประโยชน์มากสำหรับคนที่ต้องการสร้างเครื่องมือเปรียบเทียบราคา เพื่อดูว่าจองผ่านช่องทางไหนคุ้มค่าที่สุด

การเปิดใช้งานฟีเจอร์นี้ทำได้ง่ายๆ โดยการเพิ่มพารามิเตอร์ "includeVendorRates": True ลงในคำสั่งเรียกใช้งาน ระบบจะส่งข้อมูลราคาทุกเจ้าที่มีใน Google กลับมาให้คุณครบถ้วนในรูปแบบรายการ (List) ที่คุณสามารถนำไปประมวลผลต่อได้

สำหรับคนที่อยากได้ข้อมูลแบบรวดเร็วโดยไม่ต้องเขียนโปรแกรมซับซ้อน คุณสามารถใช้ cURL (คำสั่งส่งข้อมูลผ่านเครือข่าย) เพื่อเรียก API โดยตรงและรับผลลัพธ์ออกมาเป็นไฟล์ CSV ได้ทันที ซึ่งเหมาะมากสำหรับการทำรายงานหรือวิเคราะห์ข้อมูลเบื้องต้นใน Excel

curl -X POST "https://api.apify.com/v2/acts/yappman~google-hotels-prices/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN&format=csv" \
-H "content-type: application/json" \
-d '{"mode":"search","searches":[{"destination":"Lisbon","checkIn":"2026-10-12","checkOut":"2026-10-14"}],"maxItems":5}'

คำสั่งนี้เป็นการส่งคำขอไปยังเซิร์ฟเวอร์ของ Apify โดยตรงผ่านโปรโตคอล HTTP โดยระบุรูปแบบผลลัพธ์เป็น csv ซึ่งระบบจะรอให้การดึงข้อมูลเสร็จสิ้นแล้วส่งไฟล์กลับมาให้คุณดาวน์โหลดได้เลย

ผลลัพธ์ที่ได้จะเป็นไฟล์ที่มีคอลัมน์ชื่อโรงแรม ราคา และข้อมูลอื่นๆ เรียงกันมาให้เสร็จสรรพ ช่วยให้คุณเห็นภาพรวมของราคาในพื้นที่นั้นๆ ได้ภายในเวลาไม่ถึง 10 วินาที

สรุป: เริ่มต้นเส้นทางโปรแกรมเมอร์กับการจัดการข้อมูล

การเข้าใจว่า Google ไม่มี Public API เป็นบทเรียนสำคัญที่สอนให้มือใหม่รู้ว่า การหาข้อมูลจากโลกออนไลน์ต้องอาศัยทักษะการแก้ปัญหาและการเลือกใช้เครื่องมือที่ถูกต้อง แทนที่จะพยายามเขียนโค้ดดึงข้อมูลเองตั้งแต่ศูนย์จนเสียเวลาไปเปล่าๆ

หากคุณกำลังทำโปรเจกต์เพื่อสร้างพอร์ตโฟลิโอ การใช้เครื่องมืออย่าง Apify Actor ไม่ได้แสดงถึงความขี้เกียจ แต่มันแสดงถึงความเข้าใจในหลักการ Efficiency (ความคุ้มค่าและประสิทธิภาพของทรัพยากร) ซึ่งเป็นสิ่งที่บริษัทซอฟต์แวร์มองหาในตัวโปรแกรมเมอร์รุ่นใหม่

จงจำไว้ว่าเป้าหมายของการเขียนโปรแกรมคือการแก้ปัญหา ไม่ใช่การเขียนทุกอย่างด้วยตัวเอง ลองนำตัวอย่างที่ให้ไปปรับใช้กับโปรเจกต์ท่องเที่ยวของคุณดู แล้วคุณจะพบว่าการดึงข้อมูลที่ซับซ้อนให้กลายเป็นเรื่องง่ายนั้นเป็นจุดเริ่มต้นที่ดีในการก้าวไปสู่การเป็นโปรแกรมเมอร์มืออาชีพ


ที่มา: How to get Google Hotels prices with an API in 2026 — DEV Community

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

เทคนิคเขียนแอป Flutter สำหรับ Meta Smart Glasses ให้ลื่นไหลและมีประสิทธิภาพ

เทคนิคเขียนแอป Flutter สำหรับ Meta Smart Glasses ให้ลื่นไหลและมีประสิทธิภาพ

เรียนรู้วิธีเขียนแอป Flutter เชื่อมต่อ Meta Smart Glasses ให้ทำงานเร็ว ไม่กระตุก ด้วยการวางสถาปัตยกรรมโค้ดและการจัดการข้อมูลแบบมือโปรที่มือใหม่ทำตามได้จริง

ที่มา: DEV Community

2 hours ago 10 นาที
2 views
เปรียบเทียบ WebSocket, SSE และ Polling เลือกวิธีทำระบบ Real-Time ให้เหมาะกับงาน

เปรียบเทียบ WebSocket, SSE และ Polling เลือกวิธีทำระบบ Real-Time ให้เหมาะกับงาน

อยากทำระบบ Real-Time แต่ไม่รู้จะเลือกใช้ Polling, SSE หรือ WebSocket ดี? มาดูวิธีเลือกใช้ให้เหมาะกับงาน เพื่อให้แอปของคุณทำงานลื่นไหลและประหยัดทรัพยากรเซิร์ฟเวอร์

ที่มา: DEV Community

5 hours ago 10 นาที
4 views