Javascript 木偶演员返回空对象
我在用木偶演员刮网站。但是,尽管我可以看到很多教室,但教室还是空荡荡的。有什么建议吗 我正在寻找“门户类型的人”类。这一页上大约有90页。但所有对象都是空的Javascript 木偶演员返回空对象,javascript,node.js,web-scraping,puppeteer,Javascript,Node.js,Web Scraping,Puppeteer,我在用木偶演员刮网站。但是,尽管我可以看到很多教室,但教室还是空荡荡的。有什么建议吗 我正在寻找“门户类型的人”类。这一页上大约有90页。但所有对象都是空的 const axios = require('axios'); const cheerio = require('cheerio'); const puppeteer = require('puppeteer'); const mainurl = "https://www.fbi.gov/wanted/kidnap";
const axios = require('axios');
const cheerio = require('cheerio');
const puppeteer = require('puppeteer');
const mainurl = "https://www.fbi.gov/wanted/kidnap";
(async () => {
//const browser = await puppeteer.launch({headless: false});
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(mainurl);
await page.evaluate(() => {
window.scrollBy(0, document.body.scrollHeight);
});
await page.waitForTimeout(1000);
let persons = await page.evaluate(() => {
return document.querySelectorAll('.portal-type-person');
//return document.querySelector('.portal-type-person');
});
//console.log(persons);
for(let data in persons) {
console.log(persons[data]);
}
browser.close();
})();
不幸的是,
page.evaluate()。由于document.querySelectorAll()
返回不可序列化的DOM元素集合(它们包含方法和循环引用),集合中的每个元素都将替换为空对象。您需要返回可序列化的值(例如,一个HREF数组)或使用类似page.$$(选择器)
和ElementHandle
API.page.$$(选择器)对我不起作用(可能是做错了什么)。但在那项研究中,我又回到了page.evaluate(),我成功地实现了这一点let persons=wait page.evaluate(()=>Array.from(document.querySelectorAll('.portal type person>.title'),element=>element.textContent))代码>