Puppeteer的评估版和Chrome DevTools(带头)有什么不同吗?

时间:2019-11-07 13:24:51

标签: javascript node.js puppeteer

我在Puppeteer上抓了一个网站。 像这样的代码:

const data = await page.evaluate(() => {
  const trs = Array.from(document.querySelectorAll('table tr'));

  let results = [];
  trs.forEach(tr => {
    let r = {};

    r["cell"] = tr.querySelectorAll('td:nth-child(3)')[0].innerText;

    const input = tr.querySelectorAll('input[name="number"]');
    if (input.length > 0) {
      r["number"] = input[0].value;
    }

    results.push(r);
  });

  return results;
});

我希望我可以得到这样的“数据”:
*实际上,这是Chrome DevTools的结果。

[
  {cell: "a", input: "b"},
  {cell: "c", input: "d"}
]

但是当我使用Puppeteer运行它时,结果是:

[
  {cell: "a"},
  {cell: "c"}
]

它们之间有区别吗?还是其他?

1 个答案:

答案 0 :(得分:0)

我不知道这是否是准确的答案。 但是,它似乎无法从选择器'input[name="number"]'抓取值。 我用'input[type="hidden"]'重写了它,可以正常工作。