使用puppeteer和NodeJs抓取时如何获取div标签的内容

问题描述 投票:0回答:1

我听说过这个名为 puppeteer 的库,它在抓取网页方面很有用。所以我决定抓取一个游戏网站内容,这样我就可以存储它的数据并稍后浏览它。

但是在我复制了 div 标签的 XPATH 后,我希望 puppeteer 抓取它的内容,它返回空字符串请问我做错了什么。

这是我试图抓取的网址这里

我想刮掉显示 6 个不同颜色球结果的 div 标签。 这样我就可以每 45 秒获取这些颜色的数量。

const puppeteer = require("puppeteer");

async function scrapeData(url){
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url);

const [dataReceived] = await page.$x('/html/body/div[1]/div/div/div/footer/div[2]/div[1]/div/div[1]/div[2]/div/div');
const elContent = await dataReceived.getProperty('textContent');
const elValue = await elContent.jsonValue();
console.log({elValue});
//console.log(elContent);
//console.log(dataReceived)
browser.close();
}
scrapeData("https://logigames.bet9ja.com/Games/Launcher?gameId=11000&provider=0&sid=&pff=1&skin=201");
console.log("just testing");

javascript node.js puppeteer
1个回答
1
投票

您可以使用更简单的选择器,而不是在这里使用

page.$x
,这样就不那么脆弱了。尝试使用
page.$('.ball-value')
,或者可能使用
page.waitForSelector('.ball-value')
来处理过渡时间。使用更简单的选择器在该页面上进行测试似乎可行。如果您想获取所有球的值而不仅仅是第一个球的值,可以使用
page.$$
(与
document.querySelectorAll
相同,因此它将返回一个元素数组)。

© www.soinside.com 2019 - 2024. All rights reserved.