Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么木偶演员的评估功能是返回空对象_Javascript_Node.js_Web Scraping_Puppeteer - Fatal编程技术网

Javascript 为什么木偶演员的评估功能是返回空对象

Javascript 为什么木偶演员的评估功能是返回空对象,javascript,node.js,web-scraping,puppeteer,Javascript,Node.js,Web Scraping,Puppeteer,这是我的密码。基本上,我愿意做的是获取HTML并对其进行解析以获得内容 async function main() { const browser = await puppeteer.launch({ headless: false, executablePath: EXECUTABLE_PATH, devtools: true, timeout: 50000, }); const page = await browser.newPage(); a

这是我的密码。基本上,我愿意做的是获取HTML并对其进行解析以获得内容

async function main() {
  const browser = await puppeteer.launch({
    headless: false,
    executablePath: EXECUTABLE_PATH,
    devtools: true,
    timeout: 50000,
  });
  const page = await browser.newPage();
  await page.goto(URL);
  //   await page.screenshot({ path: "screenshot.png", fullPage: true });
  const rows = await page.evaluate(() => {
    return [...document.querySelectorAll(".td-block-span6")];
  });
  console.log(rows);
}
main();

console.log给了我这个

[
  {},
  {},
  {},
  {},
  {},
  {},
  { closure_uid_230013206: 25 },
  { closure_uid_230013206: 22 },
  { closure_uid_230013206: 20 },
  { closure_uid_230013206: 15 }
]

如果您想要页面上的所有文本,这应该可以:

let text = await document.querySelector('body').innerText;
不幸的是,它只能传输可序列化的值(大致上是JSON可以处理的值)。由于
document.querySelectorAll()
返回不可序列化的DOM元素集合(它们包含方法和循环引用),集合中的每个元素都将替换为空对象。您需要返回可序列化的值(例如,文本数组或
href
属性)或使用类似于和API的内容

const rows=wait page.evaluate(()=>{
返回[…document.queryselectoral(“.td-block-span6”)].map(elem=>elem.innerText);
});
console.log(行);
或:

const rows=wait page.$$(“.td-block-span6”);
for(常量行中的行){
//将行处理为ElementHandle
}

我们需要更多的信息。什么是URL?你想解析什么内容?
document.querySelector('body').innerText
不是异步的,所以在它前面放
await
没有意义。OP似乎想要
.td-block-span6
,而不是整个正文文本。