[英]How use return with page.goto in Puppeteer?
I'm using return
inside await page.goto
in Puppeteer and I don't know why return
doesn't work.我在Puppeteer中的
await page.goto
中使用return
,我不知道为什么return
不起作用。 Here's a code sample:这是一个代码示例:
This line below doesn't work:下面这一行不起作用:
return elements // return data collected
Full code:完整代码:
/* --- Lógica para coletar os dados de cada página --- */
await page.goto(url, { waitUntil: 'networkidle0' })
let data = await page.evaluate(() => {
const root = Array.from(document.querySelectorAll('tr.team'))
let elements = root.map((e) => ({
id: Math.random().toString(16).slice(2),
date: new Date().toJSON().slice(0, 10).replace(/-/g, '/'),
teamName: e.querySelector('td.name').innerText,
wins: e.querySelector('td.wins').innerText,
loses: e.querySelector('td.losses').innerText,
}))
// console.log('console.log(elements)') // DEBUG
console.log('return elements executado') // DEBUG
return elements // return data collected
})
How do make return work?如何进行退货?
I found the answer.我找到了答案。 My
let
in .push
was wrong.我
let
.push
出错了。
After this block code:在这个块代码之后:
return elements // return data collected
My .push
stay targeted to dataFromPages.push(...elements)
.我的
.push
保持针对dataFromPages.push(...elements)
。
My array return
was empty.我的数组
return
是空的。 This is a beginner wrong.这是初学者的错误。
I put the right way, dataFromPages.push(...data)
with data
let.我采用了正确的方式,
dataFromPages.push(...data)
和data
let。
Thank you guys.谢谢你们。
Full correct code to help community:帮助社区的完整正确代码:
for (let i = 0; i < urls.length; i++) {
let url = urls[i]
console.log(`Coletando dados da url: ${chalk.underline(url)}`)
/* --- Lógica para coletar os dados de cada página --- */
await page.goto(url, { waitUntil: 'networkidle0' })
let data = await page.evaluate(async () => {
const root = Array.from(document.querySelectorAll('tr.team'))
let elements = root.map((e) => ({
id: Math.random().toString(16).slice(2),
date: new Date().toJSON().slice(0, 10).replace(/-/g, '/'), //TODO: Colocar a HORA também
teamName: e.querySelector('td.name').innerText,
wins: e.querySelector('td.wins').innerText,
loses: e.querySelector('td.losses').innerText,
}))
return elements // return data collected
})
dataFromPages.push(...data)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.