Nodejs proxychains 安装 puppeteer 被强的问题
Nodejs proxychains 安装 puppeteer 被强的问题
我的环境 mac osx10.11
直接用 node 可以执行 node /Users/ahuigo/test/node_modules/puppeteer/install.js
$ proxychains4 zsh
$ npm i --save puppeteer
$ node /Users/ahuigo/test/node_modules/puppeteer/install.js
Downloading Chromium r579032 - 80.8 Mb [ ] 5% 66.1s
用 npm 却执行不了:
$ proxychains4 zsh
$ npm i --save puppeteer
> [email protected] install /Users/ahuigo/test/node_modules/puppeteer
> node install.js
ERROR: Failed to download Chromium r579032! Set “PUPPETEER_SKIP_CHROMIUM_DOWNLOAD” env variable to skip download.
{ Error: read ETIMEDOUT
使用 http_proxy 和 https_proxy 环境变量。
具体参考: https://docs.npmjs.com/misc/config#https-proxy。
.npmrc 加一条 PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors
非常感谢。
说明下,我本来就是用的 taobao 的源。
1. npm 走 socks5 不行: export https_proxy=socks5://127.0.0.1:1080 我本来用的这个,发现 npm 不支持 socks5
2. proxychains4 可以 npm install 普通包没问题, 但是 puppeteer 在执行 node install.js 就卡壳了(不知何故)
3. 最后用的 https_proxy=http://localhost:8080 解决的问题。http 代理是用 privoxy 转 socks5
好多安装问题把 npm 改成 yarn 就莫名其妙地解决了, 阔以试一试
chromium 单独下载吧,https://download-chromium.appspot.com
用 puppeteer-cn
chromium 单独下载没问题,问题是 npm 安装 puppeteer 时,会在自己的目录下载 chromium, 如果不成功,puppeteer 就安装不成功
yarn 我试过, 同样的问题。
yarn/npm 只能通过 http 代理解决
从国内的镜像下载 Chromium
- PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org npm i --save puppeteer
走国内镜像 不要用 puppeteer-cn
针对您提到的“Nodejs proxychains 安装 puppeteer 被墙的问题”,以下是一些可能的解决方案:
-
使用国内镜像源: Puppeteer在安装过程中需要下载Chromium二进制文件,由于网络原因,有时会导致下载失败。您可以尝试使用国内镜像源来加速下载。例如,使用淘宝镜像:
npm config set registry https://registry.npmmirror.com npm install puppeteer
-
配置代理: 如果您所在的网络环境存在访问限制,可以配置代理来安装Puppeteer。您可以使用
proxychains
或其他代理工具来配置代理。例如,使用proxychains
时,可以在命令前添加proxychains4
:proxychains4 npm install puppeteer
注意:您需要确保
proxychains
已正确配置,并且代理服务器可以访问Puppeteer所需的资源。 -
手动下载Chromium: 如果上述方法都无法解决问题,您可以尝试手动下载与Puppeteer兼容的Chromium版本,并设置环境变量
PUPPETEER_EXECUTABLE_PATH
指向下载的Chromium可执行文件路径。 -
检查网络稳定性: 确保您的网络连接稳定,避免在安装过程中出现网络中断或超时的情况。
如果以上方法仍然无法解决问题,建议您查阅Puppeteer的官方文档或相关社区讨论,以获取更详细的解决方案。