nodriver 无法将浏览器连接到 docker 容器

问题描述 投票:0回答:1

我想创建一个使用 python 代码抓取一些网站的 docker 镜像。 我使用 x11vnc 作为虚拟监视器,使用 firefox-esr 作为浏览器,使用 nodriver 作为 python scraper。

实际上我可以启动一个容器,并且可以通过TightVNC看到虚拟监视器。我可以从交互式 shell 启动 firefox-esr,但如果我使用 nodriver,将 /usr/bin/firefox-esr 作为可执行路径传递,它无法启动浏览器并引发

            ---------------------
            Failed to connect to browser
            ---------------------
            One of the causes could be when you are running as root.
            In that case you need to pass no_sandbox=True 

有人可以帮助我吗?

python python-3.x docker web-scraping
1个回答
0
投票

我今天也经历过这个。我正在使用 Chrome,但我认为它的工作方式与 Firefox 相同。

我已经做了很多调试,因为错误并没有那么详细,在调试时我发现真正的异常是 asyncio 抛出的“连接被拒绝”。

最终传递了 headless=True 和 sandbox=False ,它终于帮助我解决了这个异常。

这是有效的配置:

driver = await uc.start(
    browser_executable_path=chrome_bin_path, headless=True, sandbox=False
)
© www.soinside.com 2019 - 2024. All rights reserved.