บทนำ
การสร้าง Bot ที่สามารถทำงานอัตโนมัติกับเว็บไซต์ เช่น กดปุ่ม, กรอกฟอร์ม หรือดึงข้อมูลจากหน้าเว็บ กลายเป็นเรื่องง่ายกว่าที่เคยด้วยเครื่องมือยอดนิยมอย่าง Puppeteer และ Playwright ซึ่งทั้งสองเป็น Framework ที่ช่วยให้คุณสามารถควบคุมเบราว์เซอร์แบบ Headless ได้ด้วย JavaScript หรือ TypeScript
Puppeteer vs Playwright
คุณสมบัติ | Puppeteer | Playwright |
---|---|---|
รองรับเบราว์เซอร์ | Chrome, Chromium | Chrome, Firefox, WebKit |
รองรับหลาย Tab | ✅ | ✅ |
รองรับ Mobile Emulation | ✅ | ✅ |
Cross-platform Testing | ❌ | ✅ |
Community | ใหญ่ | กำลังโต |
ติดตั้ง Puppeteer
npm install puppeteer
ตัวอย่าง Bot ด้วย Puppeteer
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: true }); const page = await browser.newPage(); await page.goto('https://example.com'); await page.screenshot({ path: 'example.png' }); await browser.close(); })();
ติดตั้ง Playwright
npm install -D playwright
ตัวอย่าง Bot ด้วย Playwright
const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch(); const page = await browser.newPage(); await page.goto('https://example.com'); await page.screenshot({ path: 'playwright.png' }); await browser.close(); })();
Use Cases ที่นิยม
- 📄 Scrape ข้อมูลจากเว็บไซต์
- 🧪 ทำ E2E Testing อัตโนมัติ
- 🛒 ตรวจสอบราคาสินค้าหรือโปรโมชั่น
- 📥 ดาวน์โหลดข้อมูลหรือ PDF จากระบบ
- 🧑💼 ทำ Automation เช่น login, submit form
ตั้งค่าจำลองอุปกรณ์ (Mobile Emulation)
await page.emulate({ viewport: { width: 375, height: 667, isMobile: true, }, userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X)...' });
การจัดการกับ Element ซับซ้อน
await page.waitForSelector('#submit-button'); await page.click('#submit-button');
การดึงข้อมูลจากหน้าเว็บ
const title = await page.$eval('h1', el => el.textContent); console.log('Page title:', title);
ข้อควรระวัง
- 🔐 อย่าใช้ bot ไป scrape ข้อมูลจากเว็บไซต์ที่มีเงื่อนไขใช้งานเข้มงวด
- ⏳ ใส่ delay หรือ sleep ป้องกันเว็บบล็อค
- 🕵️♂️ บางเว็บอาจตรวจจับ Headless browser ได้ ต้องตั้ง user-agent และ headers ให้เหมือนจริง
สรุป
ไม่ว่าคุณจะใช้ Puppeteer หรือ Playwright การเขียน Bot ในยุคนี้ไม่ใช่เรื่องยากอีกต่อไป ด้วย API ที่ใช้งานง่าย รองรับหลายเบราว์เซอร์ และสามารถทดสอบเว็บแบบอัตโนมัติได้สะดวก
ลองใช้ดู แล้วคุณจะหลงรักความง่ายของมัน 😉
บทความนี้ใช้เวลาอ่าน 10–15 นาที โดยทีมงาน poolsawat.com