如何在 nodejs 和 puppeteer 之间交换数据?
How can I exchange data between nodejs and puppeteer?
我做了一个从index.js开始的nodejs应用。
然后,index.js 启动 puppeteer 并通过 addscripttag 函数在 headless-api 页面上注入 bot.js。
我 index.js 设置了一个用于在注入之前传送初始值的 cookie javascript,但我需要更通用的方式来交换数据。
我想了两个办法;第一种是使用 cookie,第二种是通过套接字连接联网。
index.js(node) 和 puppeteer(headless chrome) 之间是否有其他发送和接收数据的方式?
首先,puppeteer 是 nodejs 端应用程序,因此它们具有单一环境,您不需要 "send" 任何东西。就像在任何其他 JS 代码中一样传递数据。我假设你想在 page 和 nodejs 之间传输数据。
要将数据从 nodejs 传递到页面,请使用 page.evaluate。您可以在页面上下文中调用任何代码,从简单地设置一些变量到直接调用带有必要参数的任何函数。
要启动从页面端到nodejs的传输,首先用page.exposeFunction注册一个nodejs-side回调函数,然后从页面代码调用它,它将在nodejs上下文中执行。就像之前的情况一样,其他一切都取决于该函数的代码。它可以像将传递给它的任何参数存储在某个变量中一样简单,或者直接对数据执行任何你想要的。
我做了一个从index.js开始的nodejs应用。 然后,index.js 启动 puppeteer 并通过 addscripttag 函数在 headless-api 页面上注入 bot.js。
我 index.js 设置了一个用于在注入之前传送初始值的 cookie javascript,但我需要更通用的方式来交换数据。
我想了两个办法;第一种是使用 cookie,第二种是通过套接字连接联网。
index.js(node) 和 puppeteer(headless chrome) 之间是否有其他发送和接收数据的方式?
首先,puppeteer 是 nodejs 端应用程序,因此它们具有单一环境,您不需要 "send" 任何东西。就像在任何其他 JS 代码中一样传递数据。我假设你想在 page 和 nodejs 之间传输数据。
要将数据从 nodejs 传递到页面,请使用 page.evaluate。您可以在页面上下文中调用任何代码,从简单地设置一些变量到直接调用带有必要参数的任何函数。
要启动从页面端到nodejs的传输,首先用page.exposeFunction注册一个nodejs-side回调函数,然后从页面代码调用它,它将在nodejs上下文中执行。就像之前的情况一样,其他一切都取决于该函数的代码。它可以像将传递给它的任何参数存储在某个变量中一样简单,或者直接对数据执行任何你想要的。