【发布时间】:2021-12-12 19:10:57
【问题描述】:
我想从表格中的网站获取数据。首先,我尝试获取整个表,然后获取其中的tr 和td。我现在的代码只是返回空数组。
const puppeteer = require("puppeteer");
async function run() {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto(
"https://www.basketball-reference.com/leagues/NBA_2021_standings.html" //Eastern Conference
);
var temp = [];
const data = await page.evaluate(() => {
const tableBody = document.querySelector(
'table[id="confs_standings_E"] tbody'
);
for (var i = 0; i < tableBody.length; i++) {
const tr = tableBody[i].querySelectorAll("tr");
for (var j = 0; j < tr.length; j++) {
const td = tr[j].querySelectorAll("td").innerText;
temp.push(td);
}
}
});
console.log(temp);
//await browser.close();
}
run();
更新
我尝试了发布的解决方案,它确实有效,非常感谢,但我想尝试以另一种方式获得解决方案。下面的代码得到了正确数量的元素,但它们都是undefined
这是我在控制台中得到的:
0: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
1: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
2: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
3: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
4: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
5: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
6: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
7: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
8: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
9: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
10: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
11: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
12: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
13: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
14: (7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
这是新代码:
async function run() {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto(
"https://www.basketball-reference.com/leagues/NBA_2021_standings.html" //Eastern Conference
);
seznamEkip = [];
const ekipe = await page.$$("#confs_standings_E tbody tr");
for (const ekipa of ekipe) {
const podatki = await ekipa.$$("td");
const spread = [...podatki].map((element) => element.innerText);
seznamEkip.push(spread);
}
console.log(seznamEkip);
}
run();
感谢您的帮助
【问题讨论】:
标签: javascript node.js puppeteer