4

我有木偶师的问题。我无法在我的 debian 8.7.1 上安装它。这些是步骤:

1.安装铬:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get -f install
sudo dpkg -i google-chrome-stable_current_amd64.deb

2.安装nodejs & puppeteer:

apt-get install curl
curl -sL https://deb.nodesource.com/setup_8.x | bash -
sudo apt-get install -y nodejs
npm i puppeteer

当我运行npm i puppeteer时,错误是:

> puppeteer@0.11.0 install /root/node_modules/puppeteer
> node install.js

ERROR: Failed to download Chromium r499413! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
Error: Download failed: server returned code 403. URL:  https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/499413 /chrome-linux.zip
at ClientRequest.https.get.response (/root/node_modules/puppeteer/utils/ChromiumDownloader.js:195:21)
at Object.onceWrapper (events.js:316:30)
at emitOne (events.js:115:13)
at ClientRequest.emit (events.js:210:7)
at HTTPParser.parserOnIncomingClient (_http_client.js:565:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
at TLSSocket.socketOnData (_http_client.js:454:20)
at emitOne (events.js:115:13)
at TLSSocket.emit (events.js:210:7)
at addChunk (_stream_readable.js:266:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! puppeteer@0.11.0 install: `node install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the puppeteer@0.11.0 install script.
npm ERR! This is probably not a problem with npm. There is likely   additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-10-04T12_32_37_607Z-debug.log

我运行命令npm config set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true跳过下载,但它还想下载铬。

有什么想法可以解决这个问题吗?

4

8 回答 8

7

尝试以下选项;

1) npm config set puppeteer_skip_chromium_download true
2) Add puppeteer_skip_chromium_download=true to .npmrc file where the package.json location

在那次运行之后sudo npm install --unsafe-perm=true --allow-root

参考;

https://github.com/GoogleChrome/puppeteer/issues/2270
https://medium.com/forcit/seo-for-single-page-applications-8543619e1d0c
于 2019-04-22T08:30:07.600 回答
5

升级你的 puppeteer 版本(可选)

npm set strict-ssl false

npm config set puppeteer_skip_chromium_download true

又一次 npm install

于 2019-11-25T07:21:12.367 回答
2

尝试 sudo npm install puppeteer --unsafe-perm=true

于 2019-01-31T17:51:28.293 回答
1

错误:产生 EACCES

这大致意味着 puppeteer 由于权限问题无法执行 Chrome。如果您遇到问题,我在这里有一个 docker 镜像,您可以远程使用和交互。Chrome 和许多 linux 发行版的问题是安装是一个相当大的挑战。

于 2017-11-17T17:34:41.457 回答
0

我在使用 Puppeteer 时遇到了类似的问题。我看到您的问题有两个部分,1. 无法下载 Chromium 并获得403 error其他是 2.Error: spawn EACCES问题

我将从Error: spawn EACCES问题开始,因为它更加微妙和棘手

这是因为您的 debian 机器没有安装运行 Puppeteer 所需的依赖项。这些依赖项在发行版(CentOS、Ubuntu/Debian 等)之间有所不同。

按着这些次序,

  1. 安装所需的所有依赖项。您可以参考此链接获取列表,https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#chrome-headless-doesnt-launch-on-unix
  2. 安装所有依赖项后,安装 npm 并在 .npmrc 中配置代理(如果您位于 VPC/proxy 后面)。
  3. 然后,像往常一样继续npm i puppeteer前进

接下来解决您无法下载 Chromium 的问题。

你在代理后面吗?那是我的问题。

我注意到在执行npm i puppeteer脚本时从外部 URL 下载 Chromium,该 URL 从您的日志中为https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/499413/chrome-linux.zip

npm由于代理阻止它,无法从此外部 URL 下载。我解决此问题的方法是.npmrc使用代理设置配置文件

npm config set proxy http://<proxy_username>:<proxy_passowrd>@<proxy_host>:<proxy_port>

npm config set https-proxy http://<proxy_username>:<proxy_passowrd>@<proxy_host>:<proxy_port>

笔记:

  1. 如果您的用户名/密码包含任何特殊字符,您需要对它们进行 URL 编码。例如。如果您的用户名是,bruce\wayne那么您需要将其 URL 编码为bruce%5Cwayne%5C="\"
  2. 如果您的代理没有身份验证,则忽略并

例子:

npm config set proxy http://bruce%5Cwayne:darkknight@11.434.2.23:8080

npm config set https-proxy http://bruce%5Cwayne:darkknight@11.434.2.23:8080

因此,尝试.npmrc使用上面给出的命令配置您的文件,然后尝试运行npm i puppeteer. 代理将不再阻止外部 URL,您将能够下载 Chromium。

让我知道这是否有效,如果您有任何疑问,请与我联系。

于 2019-07-19T10:37:14.367 回答
0

我遇到过类似的问题。最好的解决方法是使用 npm init 创建一个项目,然后使用命令“npm install puppeteer --save”安装 puppeteer。这样铬也可以安装而没有任何问题。希望这会有所帮助..

于 2019-08-05T18:03:51.173 回答
0

请在.npmrc puppeteer_download_host = https://npm.taobao.org/mirrors中设置如下

或者

npm config set puppeteer_download_host https://npm.taobao.org/mirrors

于 2019-12-11T10:42:29.100 回答
0

如果您已经有 chrome,则可以使用系统变量跳过安装

https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#environment-variables

于 2018-01-22T20:38:43.160 回答