node.js - Puppeteer:使用第二场比赛与 page.evaluate
问题描述
我正在使用 puppeteer 在线检索数据,并面临一个问题。
两个函数具有相同的名称并返回序列化对象,第一个返回一个空对象,但第二个确实包含我要定位的数据。
我的问题是,我怎样才能继续选择函数的第二次出现而不是第一次出现,它返回一个空对象。
谢谢。
我的代码:
const puppeteer = require('puppeteer');
const cheerio = require('cheerio');
const Variants = require('./variants.js');
const Feedback = require('./feedback.js');
async function Scraper(productId, feedbackLimit) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
/** Scrape page for details */
await page.goto(`${productId}`);
const data = (await page.evaluate()).match(/window.runParams = {"result/)
const data = data.items
await page.close();
await browser.close();
console.log(data);
return data;
}
module.exports = Scraper;
网站源代码:
window.runParams = {};
window.runParams = {"resultCount":19449,"seoFeaturedSnippet":};
解决方案
请试试这个,它应该工作。
const data = await page.content();
const regexp = /window.runParams/g;
const matches = string.matchAll(regexp);
for (const match of matches) {
console.log(match);
console.log(match.index)
}
推荐阅读
- android - WRAP_CONTENT 时,Android PDF Writer 忽略了我的视图高度
- wordpress - 如何覆盖 Siteorigin 中的现有字段?
- arduino - 如何从声波值创建 .PCM 文件?
- live-streaming - 如何在 Ant Media Server 中使用 hls 直播来减少/配置低延迟?
- r - 聚合如何影响 geom_text?
- vba - 无法在我的工作电脑上录制超级简单的宏
- python - 如何在 Tensorflow 训练期间将 [3751,4] 数据集密集和重塑为 [1,6] 数据集
- windows - 在 Julia 和 Windows 中设置 PGFPlot
- react-native - Native Module 和 React Native Module 的区别
- openstack - 我们在 Open Stack 中有发送电子邮件功能吗?