บทนำ
การสร้าง 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