Node.js 木偶演员以数字为键,以空对象为值返回对象
因此,我正在开发一个web scraper,我需要返回一组链接,用于:Node.js 木偶演员以数字为键,以空对象为值返回对象,node.js,web-scraping,puppeteer,Node.js,Web Scraping,Puppeteer,因此,我正在开发一个web scraper,我需要返回一组链接,用于: const puppeteer = require('puppeteer'); const URL = 'SOME_URL'; const SELECTOR = 'SOME_SELECTOR' const app = async () => { try { const browser = await puppeteer.launch(); const page = await browser
const puppeteer = require('puppeteer');
const URL = 'SOME_URL';
const SELECTOR = 'SOME_SELECTOR'
const app = async () => {
try {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(URL,{waitUntil: 'networkidle0'});
await page.waitForSelector(SELECTOR);
let content = await page.evaluate(()=> {
let episodes = document.querySelectorAll(SELECTOR);
return episodes;
})
console.log(content)
await browser.close()
}catch(err) {
console.log(err)
}
}
我把它作为输出
{
'0': {},
'1': {},
'2': {},
'3': {},
'4': {},
'5': {},
'6': {},
'7': {},
'8': {},
'9': {},
... so on
}
任何关于为什么会发生这种情况的指针,我都尝试使用其他选择器,甚至在其他URL上也尝试过。不幸的是,
page.evaluate()
只能传输可序列化的值(大致上,JSON可以处理的值)。由于document.querySelectorAll()
返回不可序列化的DOM元素集合(它们包含方法和循环引用),集合中的每个元素都将替换为空对象。您需要返回可序列化的值(例如,一个HREF数组)或使用类似于page.$$(选择器)
和ElementHandle
API的内容。您想要evaluateHandle:
await page.evaluateHandle(() => [...document.querySelectorAll(SELECTOR)])