问题标签 [puppeteer]

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 回答
2321 浏览

puppeteer - 附加到先前打开的 puppeteer 驱动程序

是否可以重新连接到现有的 puppeteer ?

  1. 打开 puppeteer chrome 浏览器。
  2. 节点脚本在不关闭浏览器的情况下结束。
  3. 新脚本附加并继续使用相同的浏览器。
0 投票
6 回答
16648 浏览

javascript - 使用 Puppeteer 检索 JavaScript 渲染的 HTML

我正在尝试从这个 NCBI.gov 页面中抓取 html 。我需要包含#see-all URL 片段,这样我才能保证获得搜索页面,而不是从不正确的基因页面https://www.ncbi.nlm.nih.gov/gene/119016中检索 HTML 。

URL 片段不会传递给服务器,而是由页面客户端的 javascript 用于(在这种情况下)创建完全不同的 HTML,这是您在浏览器中访问页面并“查看page source”,这是我要检索的 HTML。R readLines() 忽略 url 标签后跟 #

我首先尝试使用 phantomJS,但它只是返回了此处描述的错误ReferenceError: Can't find variable: Map,这似乎是由于 phantomJS 不支持 NCBI 正在使用的某些功能,因此消除了这种解决方法。

我使用以下用 node.js 评估的 Javascript 在 Puppeteer 上取得了更大的成功:

但是,这返回了似乎是预渲染的 html。我如何(以编程方式)获取我在浏览器中获得的最终 html?

0 投票
1 回答
869 浏览

node.js - puppeteer 中的源图?

我正在玩偶操作(这可能是动词吗?)一个使用 webpack 构建的应用程序,page.on('error')我收到如下错误:

有没有办法,如果是这样,我怎样才能正确地对这些错误进行源映射?

(我确定我正在生成源图)

0 投票
1 回答
1163 浏览

google-chrome - 使用 Artoo.js 和 Google Puppeteer 进行网页抓取

我似乎无法将Artoo.jsPuppeteer一起使用。

我尝试通过 使用它npm install artoo-js,但它不起作用。

我还尝试使用 Puppeteer 命令注入构建路径分布page.injectFile(filePath),但我没有运气。

有人能够成功实现这两个库吗?

如果是这样,我会喜欢如何注入 Artoo.js 的代码片段。

0 投票
4 回答
4398 浏览

google-chrome - 使用 Google Chrome Puppeteer

我在 Debian 8.7.1 上。

我想使用 Google Chrome Puppeteer。

我有一个名为 script.js 的文件,我按照 Puppeteer 文档中的建议放置了获取屏幕截图的命令。

为了运行 JavaScript 文件,我运行以下命令:

但它有一些错误:

nodejs -vv8.4.0npm -v5.3.0

请帮我解决这个问题。

0 投票
1 回答
6121 浏览

node.js - Pupeteer:使用缩放(缩放)截取网页截图

我正在使用puppeteer获取特定宽度的页面截图:

屏幕截图的宽度正好是 320px。但是是否可以保存缩放的屏幕截图(例如大 2 倍)?就像在开发者工具中一样——我可以在那里设置缩放 150%。

0 投票
0 回答
1711 浏览

javascript - NodeJS 中的 Puppeteer 异步等待循环

我正在尝试制作一个脚本:

  1. 从站点地图中获取所有网址
  2. 用 puppeteer 截取它

我目前正在尝试了解如何异步编码,但我仍然无法为这个问题找到正确的编码模式。这是我目前拥有的代码:

我有以下问题:

  • 结果数组的长度不是一个常数,每次我启动脚本时它都会变化,我猜这是因为当我显示它时它并没有完全解决,但我认为等待的重点是让我们保证在下一行承诺得到解决。
  • 脚本的实际截屏动作部分有一半时间不起作用,我很确定我有未解决的承诺,但我没有循环异步函数的实际模式,现在它似乎在其他(线性和增量),但我得到了很多重复。

任何帮助表示赞赏。感谢您的时间

0 投票
3 回答
7685 浏览

node.js - 如何检查网络流量并获取资源请求的 URL?

我想监视页面的网络并获取 JavaScript 网络事件的所有 URL,类似于 PhantomJSpage.onResourceRequested正在做的事情,但我无法弄清楚如何使用 Google Chrome 的 Puppeteer 来做到这一点。

我一直在涉足Google Chrome 的 puppeteer,但我不知道如何使它工作,因为它的输出如下所示:

您能否告诉我如何使用 Puppeteer 获取 JavaScript 网络事件的所有 URL?

0 投票
1 回答
2910 浏览

javascript - Chrome无头渲染对pdf完全错误

我正在尝试使用 puppeteer 将包含多个 nvd3 图表的页面打印为 pdf。通过 Chrome 浏览器使用打印功能时,我得到以下不错的输出(不要介意蓝色边框):

正确的输出

当我尝试通过 puppeteer 使用 chrome headless 访问同一页面时,我得到了这个输出,跨越 3 个页面:

错误的输出

这是我正在使用的代码:

我还尝试将高度和宽度固定为像素值 cm 和 mm,但它不会影响输出。请注意,整个页面的样式是通过页面和使用其打印媒体样式表引导的。我还为打印媒体添加了几个 css 规则(其中蓝色边框)。这些规则之一强制整个页面为 297mmx210mm 大,即 A4 页面的确切大小。

0 投票
1 回答
338 浏览

javascript - 给定 request.continue() 的循环行为,如何将每个网络请求存储到一个数组中?

我试图在访问页面时获取所有网络请求并将它们存储到数组中。

我的代码如下所示:

我发现问题出在request.continue(). 它为每个获取的请求创建多个迭代,并且对于每个迭代,它显示该请求并将其作为字符串返回。这意味着我最终得到了几个字符串。

问题是我无法将所有这些字符串插入一个数组,所以我最近可以使用它们。我尝试了几个 for 循环,但没有成功。