关于 Puppeteer
一个Node库,它提供了一组高级API,通过DevTools协议控制无界面Chrome; 默认headless也就是无UI的chrome,也可以配置为有UI; 有点类似于PhantomJS,但Puppeteer是Chrome官方团队进行维护的,前景更好。
官网
GitHub
Chrome DevTools协议
Chrome Headless
1 | // 设置别名 |
安装
注意 Node 版本1
$ npm i puppeteer
使用
截图 / PDF
代码
1 | // index.js |
运行
1 | $ node index.js |
Headless mode
1 | // 默认弹出浏览器 |
Proxy
1 | let args = ['--no-sandbox', '--disable-setuid-sandbox', '--proxy-server=10.28.9.188:11421']; |
设备型号
参考链接1
2
3
4
5
6
7
8
9
10
11
12
13
14await page.emulate(
{
'name': 'iPhone 6 Plus',
'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_1 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Mobile/15C153 MicroMessenger/6.6.1 NetType/WIFI Language/zh_CN',
'viewport': {
'width': 414,
'height': 736,
'deviceScaleFactor': 1,
'isMobile': true,
'hasTouch': true,
'isLandscape': false
}
}
);
页面操作
1 | // 传参 |
服务端 Lunix
安装环境依赖
CentOS
1 | $ yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc |
测试运行
1 | $ cd /node_modules/puppeteer/.local-chromium/linux-497674/chrome-linux |
NSS_VersionCheck("3.26") failed. NSS >= 3.26 is required.
1 | $ yum update nss |
中文乱码
1 | yum install wqy-unibit-fonts.noarch wqy-zenhei-fonts.noarch -y |