Puppeteer

Puppeteer笔记(一):Puppeteer简介

邮差的信 提交于 2020-10-26 05:42:32
一、Puppeteer简介   Puppeteer是NPM库,它提供了NodeJS高级API来控制Chrome。Puppeteer 默认以无头(无界面)方式运行,但也可以配置为运行有界面的Chrome。   Puppeteer 提供了一系列 API,通过 Chrome DevTools Protocol 协议控制 Chromium/Chrome 浏览器的行为 二、什么是Headless Chrome   (1)在无界面的环境中运行 Chrome   (2)通过命令行或者程序语言操作 Chrome   (3)无需人的干预,运行更稳定   (4)在启动 Chrome 时添加参数 --headless,便可以 headless 模式启动 Chrome 三、Puppeteer 结构   API分层结构,反映了浏览器结构 Puppeteer: 使用DevTools协议与浏览器进行通信 Browser:对应一个浏览器实例,一个 Browser 可以包含多个 BrowserContext、 BrowserContext: 对应浏览器一个上下文会话,就像我们打开一个普通的 Chrome 之后又打开一个隐身模式的浏览器一样,BrowserContext 具有独立的 Session(cookie 和 cache 独立不共享),一个 BrowserContext 可以包含多个 Page Page

Puppeteer笔记(四):Puppeteer模拟键盘

断了今生、忘了曾经 提交于 2020-10-24 14:36:00
一、Puppeteer模拟键盘 1、keyboard.down(key[,options]) 2、keyboard.press(key[,options]) 3、keyboard.type(text,options) 4、keyboard.up(key]) 二、上手实例Demo   Puppeteer模拟键盘,功能测试:打开百度首页,输入"hello world!",删除world,并模拟键盘按下”A"。 1 const puppeteer = require('puppeteer' ); 2 async function keyboard() { 3 // 创建一个Browser浏览器实例,并设置相关参数 4 const browser = await puppeteer.launch({ 5 headless: false , 6 defaultViewport: null , 7 args: ['--start-maximized' ], 8 ignoreDefaultArgs: ['--enable-automation' ] 9 }); 10 // 创建一个Page实例 11 const page = await browser.newPage(); 12 // 打开百度首页 13 await page.goto("https://www.baidu.com" ); 14