濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁截圖功能

在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁截圖功能

熱門標(biāo)簽:代理外呼系統(tǒng)創(chuàng)業(yè) 長(zhǎng)春電銷外呼系統(tǒng)代理商 400電話干嘛怎么申請(qǐng)信用卡 外呼系統(tǒng)虛擬號(hào)碼 泰州智能外呼系統(tǒng)排名 大連電銷外呼系統(tǒng)運(yùn)營(yíng)商 400電話申請(qǐng)知乎 接電話機(jī)器人罵人 百度地圖標(biāo)注尺寸無法顯示

你在linux上安裝puppeteer時(shí)可能遇到如下問題,本文將引導(dǎo)你如何爬坑!

> puppeteer@2.0.0 install /www/node_modules/puppeteer
> node install.js

ERROR: 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并實(shí)際截圖的過程如下:

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
# 移動(dòng)重命名(可選)
mv node-v8.9.1-linux-x64 /www/nodejs
# 創(chuàng)建軟連接(快捷方式),如果上一步重命名不同則這一步的下劃線部分根據(jù)實(shí)際情況做調(diào)整
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會(huì)因?yàn)閏hromium無法下載而報(bào)錯(cuò))

npm i puppeteer-core

4.新建一個(gè)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();
})();

這一步的代碼跟網(wǎng)上的可能不同,一個(gè)是require里面的是puppeteer-core而不是puppeteer,因?yàn)槲覀儼惭b的就是puppeteer-core而不是puppeteer

另一個(gè)是launch里面有兩個(gè)參數(shù),第一個(gè)參數(shù)也是因?yàn)槲覀儧]有直接安裝puppeteer所以需要指定路徑,第二個(gè)參數(shù)則是因?yàn)閏hromium的某些限制,root賬號(hào)執(zhí)行需要加上這個(gè)參數(shù)

5.執(zhí)行a.js

node a.js

執(zhí)行完之后就可以看到一個(gè)example.png

注意:如果頁面中有中文可能無法正常顯示,因?yàn)槿狈χ形淖煮w。解決方法是直接把你自己電腦中的c:/windows/fonts中的中文字體上傳到服務(wù)器的/usr/share/fonts/chinese下即可(默認(rèn)沒有chinese目錄,自己新建即可)。如果不行請(qǐng)參考這個(gè)連接https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=centos%20%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93&oq=puppeteer&rsv_pq=a90b2ea50000943a&rsv_t=9035FHeJQWcr7x6RGsK%2BmDYU11AFyz8svepkcwhlQ51aDVXUfHrKZA7vFjQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&inputT=5789&rsv_sug3=132&rsv_sug1=63&rsv_sug7=100&rsv_sug2=0&rsv_sug4=5908

puppeter相關(guān)文檔 https://pptr.dev/

總結(jié)

以上所述是小編給大家介紹的在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁截圖功能,希望對(duì)大家有所幫助!

標(biāo)簽:興安盟 安陽 大慶 中衛(wèi) 清遠(yuǎn) 長(zhǎng)治 雅安 臺(tái)灣

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁截圖功能》,本文關(guān)鍵詞  在,linux,centos,上,使用,puppeteer,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁截圖功能》相關(guān)的同類信息!
  • 本頁收集關(guān)于在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁截圖功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    元朗区| 城固县| 沙洋县| 密山市| 衢州市| 永年县| 宁津县| 滨海县| 衡东县| 宜良县| 综艺| 岳阳市| 石首市| 宝山区| 金秀| 普安县| 垦利县| 民和| 嵊州市| 盘锦市| 汾阳市| 呼伦贝尔市| 山阴县| 屏南县| 竹溪县| 兴海县| 建瓯市| 延安市| 桂林市| 淮南市| 博罗县| 永兴县| 新宾| 南郑县| 陕西省| 文化| 万宁市| 清流县| 乳源| 溧水县| 谢通门县|