puppeteer入门
1、demo结构:

2、安装puppeteer, 同时安装Chromium
npm i puppeteer

3、代码
demo1.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: true // true:无头模式,浏览器在运行时处于后台操作的模式,不会看到浏览器打开
})
const page = await browser.newPage()
await page.goto('http://www.baidu.com')
await page.screenshot({
path: 'd:/temp/baidu.png'
})
await browser.close(); // 关闭浏览器
})()
demo2.js
const devices = require('puppeteer/DeviceDescriptors')
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: true
})
const page = await browser.newPage()
await page.emulate(devices['iPhone X'])
await page.goto('http://www.baidu.com')
await page.screenshot({
path: 'd:/temp/baidu_iphone_X.png'
})
await browser.close(); // 关闭浏览器
})()
demo3.js
// const devices = require('puppeteer/DeviceDescriptors') const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false }) const page = await browser.newPage() page.setViewport({ width: 1920, height: 969, }); // await page.emulate(devices['iPhone X']) await page.goto('http://www.baidu.com') await page.type('#kw', 'puppeteer') await page.click('#su') // await page.waitForNavigation({ timeout: 5000 }) await page.waitFor(3000) await page.screenshot({ path: 'd:/temp/baidu_search_puppeteer.png' }) // page.waitForSelector('.nums_text') // .then(() => { // page.screenshot({ // path: 'd:/temp/baidu_search_puppeteer.png' // }) // }) await browser.close(); // 关闭浏览器 })()
4、测试
执行命令:
PS D:\demo\puppeteer_01> node .\src\demo1.js
PS D:\demo\puppeteer_01> node .\src\demo2.js
PS D:\demo\puppeteer_01> node .\src\demo3.js
结果:

参考:
posted on 2020-01-08 16:14 wenbin_ouyang 阅读(383) 评论(0) 收藏 举报
浙公网安备 33010602011771号