问题标签 [pyppeteer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
9474 浏览

pyppeteer - pyppeteer.errors.BrowserError:浏览器意外关闭

今天学习了一个叫pyppeteer的lib,当我运行我的代码时

我有:

0 投票
1 回答
413 浏览

python-3.x - Pyppeteer 在 20 秒后因 pyppeteer.errors.NetworkError 崩溃

在使用pyppeteer控制 Chromium 期间,我大约在工作 20 秒后收到错误消息:

如此处所述该问题可能是由 pythonwebsockets>=7包的实现及其在 pyppeteer 中的使用引起的。

0 投票
1 回答
2044 浏览

amazon-web-services - 无服务器调用返回“无法编组响应:OSError(30, 'Read-only file system') for my Python lambda

运行基于 python 的 aws lambda 时,出现只读文件系统错误。

但是,我没有做任何日志记录,它看起来像无服务器。

这是我的 serverless.yml

我已经将我的处理程序包装在一个 try-catch 中,但它甚至没有进入我的代码。

我希望我的 lambda 能够正确运行我的代码

0 投票
1 回答
2885 浏览

python - Pyppeteer 在 AWS Lambda 上运行时无法下载无头 chrome

Pyppeteer(puppeteer 的 python 端口)正在尝试下载 linux-chrome 但无法下载。

这是一个 python 项目,我已将其 docker 化并使用无服务器部署到 AWS Lambda 中。我正在使用无服务器将 python 依赖项部署到 lambda 层。

我在谷歌上找不到任何明确的东西来告诉我如何使用 python 运行时为 chrome 浏览器自动化设置适当的 lambda。

无服务器

傀儡师

dockerfile

错误信息

0 投票
0 回答
1288 浏览

python - Pyppeteer / Puppeteer NetworkError:执行上下文被破坏,很可能是因为导航

我正在使用 puppeteer 来做一些轻量级的爬行 ~2K 页面。但我不断看到这个错误再次发生

我不明白它是如何触发相关的错误的,frame.title()因为在我的代码中,它只查找实际的页面标题,而不是在其框架内。

此外,它在导航到任何框架内容之前调用页面标题:

这种反复出现的错误的可能原因是什么?

0 投票
3 回答
3462 浏览

python - 用 pyppeteer 连接到现有的 chrome

我想使用pyppeteer连接到现有的(已经由用户打开,没有任何额外标志)Chrome 浏览器,这样我就可以控制它。

我以前几乎可以做所有手动操作(例如,在现有的 chrome 中启用远程调试模式),但最好用最少的操作来完成。

为了使用browser.connect,我需要给它browserWSEndpoint,相当于webSocketDebuggerUrl'http://localhost:9222/json/version'下。

我的问题是只有当我运行带有--headless标签的 chrome 时才能访问“http://localhost:9222/json/version”,否则我无法获取此字符串。

我尝试从 cmd 运行: chrome --disable-gpu --remote-debugging-port=9222 https://stackoverflow.com 它在打开的 chrome 实例下打开一个新选项卡,但我仍然无法访问“http://localhost:9222/json/version”来获取webSocketDebuggerUrl(我在尝试访问时得到“ERR_CONNECTION_REFUSED”地址)。

我该怎么做?我在网上找不到任何东西。

编辑(也细化了问题的第一段):

感谢大家的回答,但似乎我最初想做的事情是不可能的。如果不是第一次打开现有的 Chrome (浏览器的第一个实例)并带有--remote-debugging-port=XXXX允许您远程控制它的标志,则您无法连接到它。一旦打开浏览器的第一个实例 - 它就会锁定浏览器的用户数据,并且不能从命令行将标志添加到浏览器(只能从浏览器本身内部,由用户)。

0 投票
1 回答
781 浏览

python - 使用 requests_html 的渲染功能时保持会话

我有一个需要登录的小型内部网页。登录后,会加载一个简单的 HTML 页面,并且有 javascript 脚本可以加载页面的实际内容。

我想要:

  • 登录页面
  • 运行 javascript
  • 从页面中提取信息
  • 在页面中找到链接并重复该过程

我发现有一个名为 requests_html 的包,听起来目标是能够做这样的事情。我设法使用 requests_html 登录页面并获取我想要的页面的 HTML 视图。然后应该可以调用

然后 requests_html 应该使用 pyppeteer,它会下载并启动无头 chromium,加载网页,渲染页面,然后返回结果。这实际上有效,但它只返回登录页面。requests_html 中的会话信息不会传递给 pyppeteer 和/或 chromium。

是否可以使用相同的会话,或者我是否需要尝试仅使用 pyppeteer 登录?

这是一个代码示例,但您需要一个带有表单登录和 javascript 渲染的小网页来试用它:

0 投票
4 回答
460 浏览

docker - Docker 容器自动修复 Kubernetes 适用于一个实例吗?

我有一个正在运行 pyppeteer 的 docker 容器。它有内存泄漏,所以它会在 24 小时内停止。

我需要一些自动修复系统,我认为 Kubernetes 可以做到。没有负载均衡,只有一个实例,一个容器。合适吗?

++++

最后我选择了docker-py,使用containers.run、containers.prune进行管理。

它对我有用。

0 投票
1 回答
3366 浏览

python - Python pyppeteer 代理使用

我想使用身份验证代理运行 chromium 浏览器。我有这个代码,但铬不通过代理连接。请问有什么建议吗?

编辑:让代理工作,除了身份验证。

0 投票
0 回答
154 浏览

python-3.x - 如何等待 Recaptcha 在 Pyppeteer 中加载?

我想抓取一个网站,但我在使用 Recaptcha 时遇到了困难。我已经想出了解决它的方法,但在该方法开始之前,我必须确保 Recaptcha 已完全加载,这就是我所坚持的。我试过page.waitForSelector('#captchaFormPart > td:nth-child(2) > script:nth-child(1)', options={'visible': True})了,但没有用。