如何使用 Puppeteer 刮桌子?

edu*_*les 1 javascript node.js headless-browser google-chrome-devtools puppeteer

我想要的是刮一张表,并将数据保存在一个数组中,例如result=[tr][ts].

我怎样才能得到我想要的结果?

我正在尝试这样的事情:

const row = await mainframe.$$eval('#clasificacion > .panel > .table- responsive > #resultadosTable > tbody > tr ', trs => trs.map((tr) =>{
console.log(tr);
return tr.textContent;}));
Run Code Online (Sandbox Code Playgroud)

但结果就像result=[tr]

Gra*_*ler 12

您可以使用以下方法获取可通过以下方式textContent访问的表格单元格的二维数组row[rowNum][cellNum]

const selector = '#clasificacion > .panel > .table-responsive > #resultadosTable > tbody > tr';

const row = await mainframe.$$eval(selector, trs => trs.map(tr => {
    const tds = [...tr.getElementsByTagName('td')];
    return tds.map(td => td.textContent);
}));

// console.log(row[rowNum][cellNum]); <-- textContent
Run Code Online (Sandbox Code Playgroud)