用javascript处理数据



在下面的代码中,我循环遍历url并从每个url抓取数据(标题和内容)。我的目标是稍后将这些数据添加到另一个页面上,因此我需要根据标题,内容和url访问数据。

我想要这样的东西例如:

`myData = [{url:"www.blabla.com",
title:"bla",
content:"bla bla bla..." },
{url: ...`

,然后我想达到这样的数据:

`myData[0].url`
async function myFunction(){
values = await main();
for (var i = 0; i < values.length; i++) {
(async () => {
let myUrl = values[i];
let browser = await puppeteer.launch();
let page = await browser.newPage();
await page.goto(myUrl, { waitUntil: 'networkidle2' });
let data = await page.evaluate(() => {
let title = document.querySelector('h1').innerText;
let content = document.querySelector('div.o-article').innerText;
return {
title,
content,
};
});
})();
}
}
有谁能帮我一下吗?提前谢谢你

边做边构建myData数组:

const myData = [];
async function myFunction () {
const values = await main();
for (let i = 0; i < values.length; i++) {
const myUrl = values[i];
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(myUrl, {waitUntil: 'networkidle2'});
const data = await page.evaluate(() => {
const title = document.querySelector('h1').innerText;
const content = document.querySelector('div.o-article').innerText;
return {
title,
content,
};
});

// add data to array
myData.push({
url: myUrl,
title: data.title,
content: data.content
})
}
}

当你已经在async函数内部时,你不想做一个async IFFE:

async function myFunction(){
for (/* ... */) {
// don't do this:
(async () => {
/* ... */
})();
}
}

最新更新