【问题标题】:How can I exchange data between nodejs and puppeteer?如何在 nodejs 和 puppeteer 之间交换数据?
【发布时间】:2019-07-01 02:18:34
【问题描述】:

我制作了一个从 index.js 开始的 nodejs 应用程序。 然后 index.js 启动 puppeteer 并通过 addscripttag 函数将 bot.js 注入到 headless-api 页面上。

我让 index.js 在注入 javascript 之前设置了一个用于传递初始值的 cookie,但我需要更通用的方式来交换数据。

我想到了两种方法;第一个是使用cookie,第二个是通过socket连接联网。

在 index.js(node) 和 puppeteer(headless chrome) 之间发送和接收数据还有其他方法吗?

【问题讨论】:

    标签: javascript node.js puppeteer


    【解决方案1】:

    首先,puppeteer 是 nodejs 端的应用程序,所以它们有一个单一的环境,你不需要“发送”任何东西。只需像在任何其他 JS 代码中那样传递数据。我假设你想在页面和 nodejs 之间传输数据。

    要将数据从 nodejs 传递到页面,请使用 page.evaluate。您可以在页面上下文中调用任何代码,范围从简单地设置一些变量到直接调用任何带有必要参数的函数。

    要发起从页面端到nodejs的传输,首先用page.exposeFunction注册一个nodejs端回调函数,然后从页面代码中调用它,它将在nodejs上下文中执行。就像之前的情况一样,其他一切都取决于该函数的代码。它可以像将传递给它的任何参数存储在某个变量中一样简单,也可以直接对数据执行几乎任何你想要的操作。

    【讨论】:

    • 谢谢 :) 我已经阅读了您的建议,现在我可以实施我的想法了
    猜你喜欢
    • 2017-09-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    相关资源
    最近更新 更多