Puppeteer使用
1. Install
1 | --ignore-scripts can jump install Chromium |
2. Api
- Detailed configuration can refer to official documents.
2.1 New browser
- New browser object
1
2
3
4
5
6
7
8
9
10
11const browser = await puppeteer.launch({
slowMo: 200,
timeout: 15000,
ignoreHTTPSErrors: true,
headless: false,
devtools: true, // Open developer tools
defaultViewport: {
width: 1280,
height: 1000,
}
})
2.2 Close browser
- Close browser
1
await browser.close();
2.3 New page
- New page object
1 | const page = await browser.newPage(); |
2.4 Close page
- Close Page
1
await page.close();
2.5 Set cookie
- Set page cookie
# cookie format ...cookies <...Object> name <string> required value <string> required url <string> domain <string> path <string> expires <number> Unix time in seconds. httpOnly <boolean> secure <boolean> sameSite <"Strict"|"Lax">
1
2
3
4```js
let cookie = fs.readFileSync(cookieFilePath, 'utf8')
cookie = JSON.parse(cookie)
if (cookie) await page.setCookie(...cookie);
2.6 Get page cookie
1 | const cookie = await page.cookies(); |
2.7 Delete page cookie
1 | await page.deleteCookie(); |
2.8 Open url
1 | await page.goto('https://www.facebook.com', { |
2.9 Search dom
1 | // Wait for Dom to load |
3. Note
- 上述的结点查询使用的是Selector选择器,对应与Console的 document.querySelector 和 document.querySelectorAll,其它选择器可以查看文档
- Api使用中发现部分方法存在bug,并得不到理论值,github好多问题也没解决。。。
4. Appendix
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 个人记录!
评论