问题标签 [puppeteer-sharp]

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 投票
1 回答
1739 浏览

c# - 使用异步 linq 过滤 Puppeter Sharp 的 ElementHandle[]

我一直在 Puppeter Sharp 中重写我的 Selenium 应用程序,以了解有关该框架的更多信息。我的应用程序在我无法访问修改其源代码的站点上运行,我一直在收集一些信息。

基于此,我使用 Selenium 编写了一个函数,它可以过滤 a 中的所需元素IEnumerable<IWebElement>,这样:

但是我无法使用 Puppeteer Sharp 编写执行相同操作的代码。我写的最准确的方法是:

上面的代码仍然给我一个错误:

无法将异步 lambda 表达式转换为委托类型“Func”。

是的,这是有道理的,但我无法找到另一种使用 linq 的方法,以使其至少清晰易读。

编辑

下面的 HTML 示例:我需要根据攻击名称和类型返回无线电输入。我知道我可以编写一个很棒的、丑陋的和难以辨认的 xpath 来为我查询它,但我试图做一个更易读和更流畅的方法来更容易维护。

0 投票
2 回答
2735 浏览

puppeteer-sharp - 当控制台应用程序关闭时,Puppeteer-Sharp 仍然在进程任务管理器中出现许多铬实例

我在使用 puppeteer 时遇到了一个问题:我构建了一个控制台应用程序来使用 puppeteer 抓取数据,但是当我的应用程序关闭时,我仍然看到进程任务管理器中出现了许多铬。你能帮我解决这个问题吗?

在此处输入图像描述

0 投票
1 回答
7627 浏览

c# - Puppeteer Sharp:避免下载 Chromium(本地捆绑 Chromium)

Puppeteer Sharp在我的 .NET 应用程序中使用来执行一些网页自动化任务。但是,我必须将我的应用程序部署在只能访问 Intranet 的环境中,这意味着 Puppeteer 的BrowserFetcher课程无法从 Internet 下载 Chromium,因为它无法访问 Chromium 存储库。

是否可以将 Chromium 的副本与我的应用程序捆绑在一起,这样 Puppeteer 就不必下载它了?我该怎么做?我在文档中没有找到太多关于这个...

0 投票
1 回答
3299 浏览

c# - puppetersharp 中的单页 PDF

我曾尝试将网页转换为单页 pdf,但不支持此功能。是否有任何解决方法可以实现此要求?

我已经尝试通过从 html 内容大小设置 pdf 页面大小。但是对于所有网页,它都没有按预期工作。我已经使用 EvaluateExpressionAsync 获得了 html 内容大小。以下是我试图达到我的要求的代码片段,但不适用于所有网页(主要是响应式网页)。

我已将上述高度和宽度设置为 pdf 页面大小,如屏幕截图实现,但不适用于所有网页。但它在屏幕截图实现中正常工作。你能帮我实现这个目标吗?

0 投票
1 回答
1247 浏览

c# - 如何在 Windows Server 2008 中使用 puppeteer sharp 获取网页截图

我正在使用 puppeteer sharp v1.10 来获取网页截图。它在 windows 10 机器上工作正常,但在windows server 2008上不工作。

但是在 puppeteer github repo 中,他们已经使用 System.Net.WebSockets.Managed 报告并修复了该问题。我已经在 puppeteer 演示示例中安装了这个 nuget 包。但我不知道如何在 Windows Server 2008 中实现这一点。

谁能帮我用 puppeteer-sharp 在 windows server 2008 中获取屏幕截图。

0 投票
0 回答
245 浏览

puppeteer-sharp - 是否可以使用 puppeteeter sharp 将部分网页转换为 PDF?

是否可以通过 puppeteer sharp 中的名称或 ID 使用 HTML 元素将网页的一部分转换为 PDF。如果是,请提供示例代码。是否有任何解决方法来实现这一目标?

0 投票
1 回答
2688 浏览

c# - 如何在 puppeteer 中禁用图像?

我使用此代码禁用页面加载中的图像,但不起作用:

我怎样才能做到这一点?

0 投票
1 回答
1241 浏览

c# - 如何在高性能环境下生成网页图片?

我正在尝试在服务器端环境中在一秒钟内生成网页图像。这些请求可以同时来自网络。为此,我正在使用运行良好的 Puppeteer-Sharp库。在后端,它使用 Chromium 加载页面,然后对其进行截图。

问题是需要一段时间才能开始。例如,请注意 readme.md 示例代码中的时间(来自我的电脑):

如您所见,它很容易超过一秒钟。我不知道 Chromium 在内部是如何工作的,所以我有几个与我正在考虑的解决方案有关的问题。

  1. 对象是PuppeteerSharp.Browser线程安全的和/或可重入的吗?我可以使用来自不同线程的相同浏览器对象吗?我不这么认为,因为它与内存中的特定 Chromium 实例相关联。
  2. 如果我从每个请求中删除.LaunchAsync.NetPageAsync这将显着加快操作。对象池会PuppeteerSharp.Browser起作用吗?例如,我可以预先分配其中的 5 个并.NetPageAsync在它们上执行。然后传入的请求将使用池中的对象。这是一个可行的方法吗?
0 投票
0 回答
1214 浏览

c# - 作为 Web 服务运行时,Puppeteer-sharp 挂起

我想在部署在 IIS 环境中的 web 服务中使用 puppeteer-sharp 库。

我已经知道 chromium 的下载成功了(我可以在我的电脑上找到该文件)。不幸的是,据我调试,任务 bf.DownloadAsync 不会终止。

我希望任务终止,从而在我的下载目录中生成一个 png 文件。实际结果是 bf.DownloadAsync 永远不会终止。

0 投票
1 回答
2070 浏览

puppeteer-sharp - WaitUntil 不等待/在 WaitForSelectorAsync 上获取 HTML

有两个问题,我会很感激一些建议。过去在node中使用过puppeteer,但由于某种原因,在sharp版本上遇到了问题。

基本上,我正在抓取一个 WaitUntil 设置为 WaitUntilNavigation.Networkidle0 的网页,这是最长的等待期。在我的节点代码中,它可以正确运行并加载我的网站,但在 C# 版本中,我得到的页面没有加载角度。尽我所能告诉它不是等待并返回初始加载状态。下面是我的代码。

超时设置为 30 秒或 30,000 毫秒。然后我得到页面的html

我的第二个问题不相关,但可能更容易解决。我正在考虑的一种方法是使用 page.WaitForSelectorAsync() 方法。这似乎要等到我要查找的内容被加载,但是在从 ElementHandle 返回完成之后,我无法弄清楚如何获取页面的整个 html。

在这里希望得到一些帮助,尝试了几条路线,但无法弄清楚是什么导致了节点和 C# 代码之间的差异。