我如何从一个有木偶师的网站上获取变量并使其全球化



我正试图从webiste获取一些数据。一切看起来都很好,数据被提取,我可以成功地控制台.log(数据(。问题是:我正试图发送一个带有不和谐.js的嵌入,其中包含提取的数据,但它显示";变量";未定义。

这是代码

async function foo() {
try {
const browser = await puppeteer.launch()
const URL = 'https://tutoriale-pe.net/rezolvari-pbinfo/'
const PROBLEMA = `${args[0]}`
const page = await browser.newPage()
const navigationPromise = page.waitForNavigation({waitUntil: "domcontentloaded"})
await page.goto(URL)
await navigationPromise;
await page.waitForSelector('input[name=s]')
await page.type('input[name=s]', `PROBLEMA`)
//await page.$eval('input[name=s]', el => el.value = `${PROBLEMA}`)
await page.keyboard.press('Enter')
await page.click('.penci-image-holder.penci-lazy')
await page.waitForSelector('.enlighter')
await page.click('.enlighter')
await page.waitForSelector('.enlighter-btn-raw')
await page.click('.enlighter-btn-raw')


let data = await page.evaluate(() => {
let results = []
let contents = document.querySelectorAll('#penci-post-entry-inner')
contents.forEach((optiune) => {
results.push({
codul: optiune.querySelector('.enlighter-raw').innerText,
})
})
return results;
})
console.log(data);
//all works good for now
const EmbedBuilder = new Discord.EmbedBuilder()
.setColor('#FFD700')
.setDescription('Ai cerut rezolvarea problemei: `' + `${args[0]}`)
.addFields(
{ name: 'Code', value: `${data}`, inline: true},  //the "data" is undefined
)
.setTimestamp()
message.channel.send(EmbedBuilder);
await browser.close()
} catch(e) {
console.log(e);
message.channel.send('Problema `' + `${args[0]}` + '` nu exista.');
}
}
foo();

此外,我正在使用puppeteer来获取数据。

要在page.evaluate这样的函数中使用变量(或者在获取/刮取东西的地方,需要调用已返回的数据。在我们的示例中:"results";。例如:在数据中:codul:随机的东西;

当使用变量时:CCD_ 2将具有值"0";codul";在CCD_ 3内。

最新更新