【发布时间】:2021-10-07 20:43:12
【问题描述】:
我正在使用 Puppeteer 进行网页抓取,并使用我制作的小型 NodeJs 网络应用程序。这个 web 应用托管在 Heroku 上,使用 jontewks/puppeteer-heroku-buildpack 运行。
我面临的问题是由于 Heroku 大小限制,我的应用程序不再构建:
Compiled slug size: 537.4M is too large (max is 500M).
我已经尝试了几件事:
- 使用 Firefox 代替 Chromium
- 因为current issue with puppeteer/firefox,对我来说“不行”:
- 将 Chromium 的大小减少 removing the file
interactive_ui_tests.exe- 我不能这样做,因为 Heroku 使用 Linux 而不是 Windows,而且 Linux Chromium 发行版中不存在此文件
- 使用
headless_shell代替 Chromium - 使用剧作家而不是傀儡师
- 这可能是一个解决方案,但我正在使用
puppeteer-extra和puppeteer-extra-plugin-stealth之类的东西,所以我很难改变
- 这可能是一个解决方案,但我正在使用
- 通过删除文件夹
locales来减小 Chromium 的大小- 有点帮助,但不大
- 使用旧版本的 Puppeteer (
2.1.1),它使用的是较轻的旧版本 Chromium- 目前,这是我拥有的唯一可行的解决方案
- 使用命令
heroku repo:gc -a myapp和heroku builds:cache:purge -a myapp
我的最后三点将我的 slug 的大小减小到 490M。所以我的应用程序正在运行,但对于(不久的)未来来说并不是很好,比如拥有最新的 Puppeteer 版本。
所以我在这里寻求帮助,因为我目前没有任何想法。
非常感谢您的帮助????
【问题讨论】:
-
尝试github.com/adieuadieu/serverless-chrome 或类似的包从那个包中获取铬二进制文件。它通常要小得多。我知道它说“Lambda”,但它应该适用于大多数 Linux 发行版
-
感谢您的想法!但最后,我最终使用了 Playwright
标签: node.js heroku puppeteer node-modules chromium