Closed helinjiang closed 4 years ago
当前底层使用 nightmare.js,未来可以支持 puppeteer。可能需要以下改造:
需要剥离出 matman-driver-nightmare 和 matman-driver-puppeteer 两个包,而 matman 则提供统一的基础工具,作为一个壳来驱动不同的底层框架,使用方式接近于如下:
matman-driver-nightmare
matman-driver-puppeteer
matman
const nightmare = require('matman-driver-nightmare') const browser = await matman.launch(nightmare, { show: opts.show }); browser.setDeviceConfig({ 'UA': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36 mycustomua', 'width': 1250, 'height': 400 }); browser.setScreenshotConfig(true); const page = await browser.newPage({ basePath: __filename, opts }); // .... // 加载页面地址 page.goto('https://www.baidu.com') // 需要等待某些条件达成,才开始运行爬虫脚本 .wait('#su') // 爬虫脚本的函数,用于获取页面中的数据 .evaluate(() => { return { title: document.title, width: window.innerWidth, height: window.innerHeight, userAgent: navigator.userAgent, _version: Date.now(), searchBtnTxt: document.querySelector('#su').value }; }) // 结束,获取结果 .end();
已经切换
当前底层使用 nightmare.js,未来可以支持 puppeteer。可能需要以下改造:
需要剥离出
matman-driver-nightmare
和matman-driver-puppeteer
两个包,而matman
则提供统一的基础工具,作为一个壳来驱动不同的底层框架,使用方式接近于如下: