参考
- QQ群 - Javascript高级爬虫 - 作者自建群,欢迎加入!
- awesome-java-crawler - 作者收集的爬虫相关工具和资料
- 一个帮你自动创建阿里云抢占式实例并开启网络加速的脚本 - 自动创建阿里云海外抢占式节点
- CentOS上安装node.js二进制发布包 - CentOS上安装nodejs最新版
- CentOS7最简puppeteer安装备忘 - CentOS上安装Puppeteer可以看这篇
前言
之前试过在CentOS7上安装puppeteer并使之能以无头模式正常启动,并正确显示中文字体。
今天尝试了下在Ubuntu18上达到同样目的,这里记录下免得以后忘了。
步骤
- 安装nodejs,同CentOS7,略
- 安装cnpm,略
- 安装puppeteer,直接用
cnpm install puppeteer
即可 -
根据Puppeteer项目主页的Wiki文章,使用下面命令安装缺失的库:
apt-get install -y gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
-
到这里chrome可以无头启动,但中文字体显示为方块,因为镜像中不包括中文字体。这时只要从Windows中搬运几个常用字体到Ubuntu里即可:
- 浏览到Windows的字体目录
C:\Windows\Fonts
- 上传几个常用字体,如“宋体 常规”、“微软雅黑”,到ubuntu的
/usr/share/fonts
目录,文件名为:simsun.ttc
,msyh.ttc
- 安装几个字体工具
sudo apt-get -y install fontconfig xfonts-utils
-
建立字体索引信息,更新字体缓存,依次执行如下命令:
mkfontscale
mkfontdir
fc-cache
- 执行
fc-list :lang=zh
列出系统中文字体,此时应该可以看到若干中文字体
- 浏览到Windows的字体目录
至此,安装完成,可以验证了。
验证(和CentOS步骤一致)
-
编写index.js,内容如下:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']}); const page = await browser.newPage(); await page.goto('https://www.segmentfault.com'); await page.screenshot({path: 'sf.png'}); await browser.close(); })();
注意:
1) 必须加上--no-sandbox
参数启动chrome,否则报错
2) 默认就是以无头(无界面)模式启动chrome,即自带--headless
参数 -
node index.js
执行上述脚本,会在当前目录下产生思否首页截图,可以打开截图文件看下,验证中文是否能够正常显示
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。