ฟีเจอร์หนึ่งของ Chrome ที่คนไม่รู้จักกันมากนักคือ Headless หรือการรัน Chrome โดยไม่ต้องแสดงหน้าต่างของ Chrome มาให้เราเห็น ตัวอย่างการใช้งาน Headless Chrome มักเป็นงานฝั่งนักพัฒนา เช่น เปิด Chrome มาเพื่อบันทึกภาพหน้าจอหรือบันทึกเว็บเพจเป็น PDF รวมไปถึงงานพวก automate testing ทดสอบการเรนเดอร์เว็บ
การเรียกใช้งาน Headless Chrome สามารถทำได้โดยเรียกผ่านคอมมานด์ไลน์แล้วใส่พารามิเตอร์ chrome --headless ตามมา ( รายละเอียด ) แต่ล่าสุดกูเกิลเปิดให้เรารัน Headless Chrome บนคลาวด์ได้แล้ว ทำให้เราสามารถเรียกใช้ Chrome ทำงานจากฝั่งเซิร์ฟเวอร์ได้สะดวกมากขึ้น
สิ่งที่น่าสนใจคือกูเกิลนำ Headless Chrome ไปพ่วงกับ App Engine และ Cloud Functions ซึ่งตัวหลังเป็นการทำงานแบบ serverless ไม่ต้องรันอะไรค้างไว้ก็ทำงานได้เมื่อต้องการ ทำให้เราสามารถเขียนโปรแกรมให้ Cloud Functions รอรับค่าจากอีเวนต์บางอย่าง แล้วเรียก Headless Chrome ขึ้นมาทำงานได้ทันที
การเรียก Chrome ขึ้นมาบน Cloud Functions หรือ App Engine ต้องใช้ไลบรารีพิเศษของกูเกิลชื่อ Puppeteer ที่สามารถเรียกใช้งาน DevTools ของ Chrome ได้ด้วย
ที่มา - Google Cloud Blog
Comments
เล่นอยู่ คือมันดีมากกก
ปกติใช้ทำอะไรบ้างหรอครับ
ผมก็สนใจแต่ยังนึกเรื่องที่จะเอาไปใช้ไม่ออก
ทำอะไรก็ตามที่คนไม่ต้องเข้าไปยุ่งครับ
แต่ผมใช้แค่รันเทสต์แฮะ
เท่าที่นึกออกในหัวตอนนี้
โดยที่ว่ามาทั้งหมด ทำได้โดยไม่ใช้คน (สั่งรัน 1000 headless พร้อมกันเงี้ย)
We are using this technology at our company for our Campaign Sherpa project. It's much better than PhantomJS which gave us all sorts of problems.