[note] puppeteer 筆記
keywords: 爬蟲, crawler, 自動化, chrome, test
puppeteer @ GitHub
常用功能
取得 DOM 元素
keywords: page.$(), page.evaluate(), ElementHandles.dispose()
取得 DOM 元素後,可以透過一般的 Vanilla JS 來操作這些元素:
puppeteer.launch().then(async (browser) => {
const page = await browser.newPage();
await page.goto('https://www.example.com');
/**
* 透過 page.$(<selector>) 選取元素
* 把選取到的元素丟到 page.evaluate(fn, arg) 的 arg 中,可以在 fn 透過 Vanilla JS 操作
* 透過 ElementHandles.dispose() 將記憶體回收
**/
const bodyToBeHandle = await page.$('body');
const html = await page.evaluate((body) => body.innerHTML, bodyToBeHandle);
// 透過 dispose() 移除
await bodyToBeHandle.dispose();
await browser.close();
});