我正在使用WebScraping开发一个PlayWright应用程序,但是当将它部署到heroku上时,它不能使用playwright install命令安装浏览器--我必须直接在heroku控制台上运行这个命令,它可以完成安装,但也没有完成。
我正在使用buildpack https://github.com/mxschmitt/heroku-playwright-buildpack.git
现场运行得很好,但是当你玩heroku这个问题时,我已经尝试过几种解决方案,但没有一种有效。
代码片段。
from playwright.sync_api import sync_playwright
with sync_playwright() as playwright:
browser = playwright.chromium.launch(chromium_sandbox=False)
context = browser.new_context()
page = context.new_page()发布于 2022-07-21 19:20:30
Heroku的文件系统是短暂的,也是局部的。在dyno重新启动时,对其所做的任何更改都会丢失。更重要的是,当您运行像heroku run bash这样的程序时,您不会连接到正在运行的dyno。相反,你会得到一个单独的一次性戴诺。
在这种环境中安装Chromium (或进行任何其他文件系统更改)不会影响其他dynos中可用的内容。
看起来剧作家真的很想管理自己的浏览器二进制文件。您最好的选择可能是在脚本开头附近运行playwright install,例如:
import subprocess
from playwright.sync_api import sync_playwright
subprocess.run(["playwright", "install"])
with sync_playwright() as playwright:
# ...这应该确保所需的二进制文件始终在运行时可用。
https://stackoverflow.com/questions/73071242
复制相似问题