Puppeteer
puppeteer是由Google官方推出的一个node库,可以启动Chromium浏览器模拟人为操作,类似于PhantomJS。这为爬虫和自动化测试提供了便利。
流程
登录流程很简单:启动puppeteer打开目标网站,输入信息提交登录
架构
由于puppeteer是基于node的库,可以利用node做一个http服务。
1. 调用方发起http请求,puppeteer创建page实例打开目标网站,返回验证码等信息
2. 新生成的page会维护在一个对象池中,并由一个watcher监控page打开超时
3. 调用方传递登录账号验证码等信息发起登录请求
4. 从puppeteer对象池中拿出上一次的page实例,执行登录
示例
模拟登录浙江税务局
puppeteer对象:
const puppeteer = require('puppeteer') class PageObject { constructor(options = {}) { this.headless = options.headless; this.args = options.args || []; this.executablePath = options.executablePath;