Kir*_*MES 5 heroku chromium node.js node-modules puppeteer
我使用 Puppeteer 进行网页抓取,并使用我制作的一个小型 NodeJs Web 应用程序。这个网络应用程序托管在 Heroku 上并且可以jontewks/puppeteer-heroku-buildpack
正常工作。
我面临的问题是,由于 Heroku 大小限制,我的应用程序不再构建:
Compiled slug size: 537.4M is too large (max is 500M).
Run Code Online (Sandbox Code Playgroud)
我尝试过几件事:
interactive_ui_tests.exe
headless_shell
而不是 Chromium
puppeteer-extra
和 之类的东西puppeteer-extra-plugin-stealth
,所以改变它很麻烦locales
2.1.1
),它使用旧版本的 Chromium,稍微轻一些
heroku repo:gc -a myapp
和heroku builds:cache:purge -a myapp
我的最后三点将我的蛞蝓的尺寸减小到了490M
。所以我的应用程序正在运行,但对于(近期)未来来说并不是很好,就像拥有最新的 Puppeteer 版本一样。
所以我在这里寻求帮助,因为我目前没有更多的想法。
非常感谢您的帮助
最后,我最终使用了 Playwright。
有了这个 Buildpack,我的应用程序的构建只有 250Mb!
以下是我遵循的几个步骤:
使用 NPM 安装playwright-chromium
以仅下载 Chromium。
PLAYWRIGHT_BUILDPACK_BROWSERS
在 Heroku中将 env 变量设置chromium
为仅安装 Chromium 依赖项。
在 Heroku 中将此构建包放在 Node.js 构建包之前。
通过这个技巧,您可以使用puppeteer-stealth
.
如果需要,您可以像 Puppeteer 中那样阻止资源:
await page.route('**/*', route => ([
'stylesheet',
'image',
'media',
'font',
// 'script',
'texttrack',
'xhr',
'fetch',
'eventsource',
'websocket',
'manifest',
'other',
].includes(route.request().resourceType()) ? route.abort() : route.continue()))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2625 次 |
最近记录: |