你在linux上安装puppeteer时可能遇到如下问题,本文将引导你如何爬坑!
> puppeteer@2.0.0 install /www/node_modules/puppeteer
> node install.jsERROR: Failed to download Chromium r706915! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
{ Error: EACCES: permission denied, mkdir '/www/node_modules/puppeteer/.local-chromium'
-- ASYNC --
at BrowserFetcher.<anonymous> (/www/node_modules/puppeteer/lib/helper.js:111:15)
at Object.<anonymous> (/www/node_modules/puppeteer/install.js:62:16)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/www/node_modules/puppeteer/.local-chromium' }
npm WARN enoent ENOENT: no such file or directory, open '/www/package.json'
npm WARN www No description
npm WARN www No repository field.
npm WARN www No README data
npm WARN www No license field
我成安装puppeteer并实际截图的过程如下:
1.安装nodejs和npm
# 下载解压 wget -c https://nodejs.org/dist/v8.9.1/node-v8.9.1-linux-x64.tar.xz tar -xvf node-v8.9.1-linux-x64.tar.xz # 移动重命名(可选) mv node-v8.9.1-linux-x64 /www/nodejs # 创建软连接(快捷方式),如果上一步重命名不同则这一步的下划线部分根据实际情况做调整 ln -s /www/nodejs/bin/node /usr/local/bin/node ln -s /www/nodejs/bin/npm /usr/local/bin/npm
2.安装chromium
yum install chromium
3.安装puppeteer-core(直接安装pupperter会因为chromium无法下载而报错)
npm i puppeteer-core
4.新建一个a.js
const puppeteer = require('puppeteer-core'); (async () => { const browser = await puppeteer.launch({ executablePath: '/usr/bin/chromium-browser', args:["--no-sandbox"] }); const page = await browser.newPage(); await page.goto('https://www.baidu.com'); await page.screenshot({path: 'example.png'}); await browser.close(); })();
这一步的代码跟网上的可能不同,一个是require里面的是puppeteer-core而不是puppeteer,因为我们安装的就是puppeteer-core而不是puppeteer
另一个是launch里面有两个参数,第一个参数也是因为我们没有直接安装puppeteer所以需要指定路径,第二个参数则是因为chromium的某些限制,root账号执行需要加上这个参数
5.执行a.js
node a.js
执行完之后就可以看到一个example.png
注意:如果页面中有中文可能无法正常显示,因为缺乏中文字体。解决方法是直接把你自己电脑中的c:/windows/fonts中的中文字体上传到服务器的/usr/share/fonts/chinese下即可(默认没有chinese目录,自己新建即可)。如果不行请参考这个连接https://www.baidu.com/s"external nofollow" href="https://pptr.dev/">https://pptr.dev/
总结
以上所述是小编给大家介绍的在linux (centos)上使用puppeteer实现网页截图功能,希望对大家有所帮助!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 群星《红色经典》限量1:1母盘直刻[低速原抓WAV+CUE]
- 苗子杰.1993-SUN.SHINE【歌林】【WAV+CUE】
- 吕方.1990-不舍得你【华纳】【WAV+CUE】
- 刘若英.2005-一整夜【大熊星】【WAV+CUE】
- 刘锐/王星《牧者影视配乐精选·贰》[FLAC/分轨][271.13MB]
- 林一峰《作业》[320K/MP3][185.25MB]
- 林一峰《作业》[FLAC/分轨][511.47MB]
- 魔兽世界永久60级奶骑天赋怎么点 永久60级奶骑天赋推荐
- 魔兽世界永久60级矮人牧师怎么玩 永久60级矮人牧师玩法指南
- 炉石传说40血卡组代码一览 2024最新全职业40血卡组代码大全
- 《如龙:极》NS实体版确认!35美元 25年3月发货
- 日本离谱忍者游戏将登NS:手柄插进屁股进行对决
- 《神之天平外传》NS版今日发售 可独立于本体运行
- 群星《24K德国HD金碟红色经典》2CD[WAV+CUE]
- 妙音唱片群星《红色经典DSD1-2》2CD[低速原抓WAV+CUE]