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

我在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"}
]

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

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

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

本文链接:https://www.f2er.com/3144523.html

大家都在问