问题标签 [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 投票
0 回答
44 浏览

google-chrome - Pyppeteer 超时后查询页面内容?

导航到页面后,我想等待:

  1. 要加载的页面,或者
  2. 超时(20 秒)

但是,在捕获 TimeoutError 后,它报告原始页面已崩溃,我无法检索内容。

是否可以达到超时但随后查询页面内容?

0 投票
0 回答
368 浏览

python - 在pyppeteer python中填写弹出窗口或提示窗口的形式

我在 python 中使用 pyppeteer 来做一些自动化。一切都很好,直到我在弹出窗口中得到一个我试图填写的表单,我无法控制那个弹出/提示表单。我试图通过使用 pages() 函数来控制这个弹出窗口,但无法控制,有人可以检查这个问题吗?我是 pyppeteer 的新手。

0 投票
1 回答
903 浏览

python-3.x - requests_html 渲染方法继续导致超时

我不确定它是否是我的计算机的设置(Windows 7,Python3.8,刚刚安装了 requests_html),但无论我选择哪个站点,该render方法都导致timeout error 我玩弄了 timeout 参数,但没有运气.

0 投票
0 回答
193 浏览

python - Pyppeteer 高 CPU 使用率(一个浏览器接近 50%)

出于某种奇怪的原因,运行单个 Pyppeteer 无头 chrome 浏览器占用了我 50% 的 CPU 使用率(Ryzen 5 2600X)。有了这样的中高端 CPU,我应该能够处理的不仅仅是一个浏览器。

这是我的启动参数:

根据我的研究,这些是我尽可能减少 CPU 使用率的最佳论据。还有其他想法吗?

0 投票
0 回答
170 浏览

python - 如何在 python 中使用异步函数和多处理?

我正在使用 pyppeteer 截屏https://pypi.org/project/pyppeteer/。但这需要很多时间,所以想使用多处理。这是我的代码。

我收到以下错误。如何使用我所有的内核来运行这个异步函数?

0 投票
1 回答
515 浏览

python - 如何使用 pyppeteer 在新标签页中打开 url?

使用 nodejs 和 puppeteer,它看起来像:

python和pyppeteer的等效代码字符串“定义承诺”是什么?

0 投票
1 回答
791 浏览

javascript - 近乎实时地从网站上抓取动态内容

我正在尝试实现一个网络抓取工具,以近乎实时的方式从网站上抓取动态更新的内容。

让我们以https://www.timeanddate.com/worldclock/为例,假设我想连续获取我家位置的当前时间。我现在的解决方案如下:每秒获取渲染的页面内容并使用 bs4 提取时间。工作代码:

我想做的是:仅在页面上更新时间时做出反应。原因:更快的反应和更少的计算密集度(特别是在监视可能以小于或大于一秒的不规则间隔更新的多个页面时)。

我得到/尝试了以下三个想法如何解决这个问题,但我不知道如何继续。可能还有一种更简单/更优雅的方法:

1)使用pyppeteer拦截网络响应

这似乎不起作用,因为在最初加载页面后没有更多的网络活动(广告除外),正如我在 Chrome 开发工具的网络选项卡中看到的那样。

2) 响应页面上的自定义事件

使用 Chrome Dev Tools 中“Sources”选项卡中的“Event Listener Breakpoints”,我可以停止对各种事件(例如“Set innerHTML”事件)的 JavaScript 代码执行。

是否可以使用 pyppeteer 来做这样的事情,提供一些关于事件的上下文信息(例如哪个元素用哪个新文本更新)?

似乎可以使用 JavaScript 和 puppeteer(请参阅https://github.com/puppeteer/puppeteer/blob/main/examples/custom-event.js),但我认为 pyppeteer 不提供此功能(我找不到它在 API 参考中)。

3) 在页面的 JavaScript 代码中覆盖一个函数

覆盖相关函数并拦截相关数据(作为参数提供给该函数)。

这个想法的灵感来自这篇博文:https ://antoinevastel.com/javascript/2019/06/10/monitor-js-execution.html

博文的完整代码:https ://github.com/antoinevastel/blog-post-monitor-js/blob/master/monitorExecution.js

我尝试了一下,但我的 JavaScript 似乎太有限,甚至无法覆盖页面使用的其中一个 javascript 中的函数。

0 投票
0 回答
776 浏览

python-3.x - pyppeteer headless 会导致 bot 检测,而不是 headless 是可以的

我正在尝试使用 Pyppetter,但不确定为什么 headless 会导致机器人检测,而 headless = False 则不会。

这是我的代码(请注意 proxy-sever args 需要删除或替换为您的代理服务器):

我假设在进行无头操作时需要调整一些设置?谢谢你。

0 投票
1 回答
622 浏览

puppeteer - 表情符号在 Chrome Headless 的 PDF 输出中变为灰色

(注意,尽管这里提到了 Pyppeteer,Puppeteer 的 Python 版本,但代码完全相同,并且可以与 Puppeteer 和 Pyppeeteer 一起使用)。

你好,

我正在使用以下代码将页面http://getemoji.com/转换为 PDF:

它会正确生成以下图像: 在此处输入图像描述

但是,如果我尝试将页面转换为 PDF,如下所示:

生成的 PDF 中的所有表情符号都是灰色的,如下所示:

在此处输入图像描述

问题不是表情符号的字体问题,因为它们在屏幕截图上完美运行。这与 PDF 的生成方式有关,但我不知道为什么。

我希望你能找到它:)

0 投票
0 回答
970 浏览

python-3.x - Pyppeteer 如何使用类型登录页面

我正在使用 selenium + chrome 驱动程序为我的 python 电报机器人部署在带有 docker 的 linux 服务器上。一切正常,但它不支持异步,所以我的应用程序在抓取期间不能做任何其他事情。我听说过 Pyppeteer,但是在获取页面时遇到了一些麻烦,我需要抓取。网页要求我登录。以下是步骤:

  1. 打开页面。
  2. 点击授权按钮:

<button class="btn btn-outline-warning kt-font-dark mr-2" type="button" id="btn_auth"> <i class="fa fa-key"></i> Enter </button>

  1. 登录后 div 出现在页面上,它有接下来的 2 个输入:

<input type="email" class="form-control pd-y-12" name="login[email]" placeholder="Email">

<input type="password" class="form-control pd-y-12" name="login[password]" placeholder="password">

  1. 输入电子邮件和密码后,应单击登录按钮。

<button class="btn btn-warning btn-block mg-b-10" type="submit" name="do_login">login</button>

在这里我想做:

现在可以找到并单击第一个按钮,输入不起作用。还需要返回页面HTML内容