Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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,我在用木偶演员刮网站。但是,尽管我可以看到很多教室,但教室还是空荡荡的。有什么建议吗 我正在寻找“门户类型的人”类。这一页上大约有90页。但所有对象都是空的 const axios = require('axios'); const cheerio = require('cheerio'); const puppeteer = require('puppeteer'); const mainurl = "https://www.fbi.gov/wanted/kidnap";

我在用木偶演员刮网站。但是,尽管我可以看到很多教室,但教室还是空荡荡的。有什么建议吗

我正在寻找“门户类型的人”类。这一页上大约有90页。但所有对象都是空的

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))