Javascript 为什么木偶演员的评估功能是返回空对象
这是我的密码。基本上,我愿意做的是获取HTML并对其进行解析以获得内容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
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
,而不是整个正文文本。