【发布时间】:2021-08-17 17:39:11
【问题描述】:
let data;
await page.on('response', async (response) => {
if (response.url().includes("https://www.ubereats.com/api/getFeedV1")) {
const j = await response.json();
console.log(j);
}
});
console.log(data);
这是一个带有 puppeteer 库的网络爬虫的代码段。
在这个await 中,我可以记录j 变量。但我需要将它分配给data 变量。我该怎么做?
【问题讨论】:
-
你能说
data = await response.json()吗? -
page.on是同步的,所以await没有任何意义。它注册一个回调。如果您想等到回调触发,您必须承诺回调或使用waitForResponse。另一种选择是将您的data相关代码直接放入回调链中。 -
谢谢大家。 @ggorlen 我已经按照你的方式取得了成功。谢谢。
-
太棒了——随时分享self answer 以帮助其他有同样问题的人。