我不确定我是否明白我要的东西,我希望有人能解释。我正在尝试在NodeJS上使用Puppeteer抓取网站。我已经选择了所需的元素并访问了它的属性,但是,我无法访问需要提取所需信息的属性。我想要的信息在下面的绿色框中,但是我无法超越__reactEventHandlers$kq2rgk91p6
,因为它只会返回未定义的内容。
我使用了以下选择器,该选择器可以工作并访问所有其他属性,而不是我想要的属性。
const checked = await page.evaluate(() => document.querySelector(stockSelector));
如果我理解正确(没有URL和最少的可复制代码,很难猜测),这就是问题所在:根据文档,各种eval函数只能传输可序列化的数据(大致上,JSON可以处理的数据,有些补充)。您的代码返回一个DOM元素,该元素不可序列化(它具有方法和循环引用)。尝试在浏览器上下文中检索数据,并仅返回可序列化的数据。例如:
const data = await page.evaluate(
selector => document.querySelector(selector)
.__reactEventHandlers$kq2rgk91p6.children[1].props.record.Stock,
selector,
);
如果.Stock
属性中的数组可序列化,则将获得数据。