我正在使用 node.js 和 puppeteer 来获取一些数据。 ...现在我想根据数组中的不规则值访问不同的页面:
我的数组如下所示:
rows = [ RowDataPacket {
id: 1,
value: 'L3',
name: 'Steve' },
RowDataPacket {
id: 2,
value: 'GU',
name: 'Peter' },
RowDataPacket {
id: 3,
value: 'M5',
name: 'John' }]
所以我想访问的页面是:
await page.goto('url/search?action=getname&name=L3', {waitUntil: 'load'});
await page.goto('url/search?action=getname&name=GU', {waitUntil: 'load'});
await page.goto('url/search?action=getname&name=M5', {waitUntil: 'load'});
数组实际上有 200 个值长......所以我想到做一个像这样的循环:
await page.goto('url', {waitUntil: 'load'});
rows = [ RowDataPacket {
id: 1,
value: 'L3',
name: 'Steve' },
RowDataPacket {
id: 2,
value: 'GU',
name: 'Peter' },
RowDataPacket {
id: 3,
value: 'M5',
name: 'John' }]
console.log(rows.length); // 3
for (let i=1; i < rows.length; i++){
await page.goto('url/search?action=getname&name='+value, {waitUntil: 'load'});
}
但是如何从数组中访问值(“value”)并在循环中相应地使用它?
最佳答案
我会将 browser.newPage();
放入循环内,如下所示:
const page = []
for (let i=1; i < rows.length; i++){
page[i] = await browser.newPage();
await page[i].goto('url/search?action='+rows[i].name+'&name='+rows[i].value, {waitUntil: 'load'});
}
然后,以相同或其他方式:
const newPage = await page[i].evaluate(() => {
关于javascript - Node.js puppeteer - 在循环中使用数组中的值来循环浏览页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52083195/