เขียน Bot ง่าย ๆ ด้วย Puppeteer หรือ Playwright

Sharing is caring!

บทนำ

การสร้าง Bot ที่สามารถทำงานอัตโนมัติกับเว็บไซต์ เช่น กดปุ่ม, กรอกฟอร์ม หรือดึงข้อมูลจากหน้าเว็บ กลายเป็นเรื่องง่ายกว่าที่เคยด้วยเครื่องมือยอดนิยมอย่าง Puppeteer และ Playwright ซึ่งทั้งสองเป็น Framework ที่ช่วยให้คุณสามารถควบคุมเบราว์เซอร์แบบ Headless ได้ด้วย JavaScript หรือ TypeScript

Puppeteer vs Playwright

คุณสมบัติPuppeteerPlaywright
รองรับเบราว์เซอร์Chrome, ChromiumChrome, 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

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *