Click sur un élément d'une page pour afficher plus de donnée (scraping)
Bonjour,
je souhaite scrapper les résultat sportif sur Flashscore (https://www.flashscore.fr/football/f...e-1/resultats/), j'ai codé la partie qui me permet des récupérer le nom des équipe, la date du match, le résultat.
Le problème et qu'il y a tout en bas de la page une ligne cliquable avec écrit "Montrer plus de matchs" mais je n'arrive pas à faire ce click pour réussir a afficher l'ensemble des matchs pour que ensuite mon script récupère toute les données.
Je ne sais pas si j'ai juste pas réussi a effectuer ce click ou si il c'est effectuer mais a en réalité juste chargé cette page "https://www.flashscore.fr/football/france/ligue-1/resultats/#" qui correspond au lien de la ligne "Montrer plus de matchs" mais qui n'affiche pas plus de match quand elle est charger comme si c'était un url a proprement dit.
Merci d'avance a tous ceux qui seront en mesure de me guider sur une solution possible.
Voici mon code qui me permet de récupérer les donnés des matchs:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
const { innerText } = require('domutils');
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('https://www.flashscore.fr/football/france/ligue-1/resultats/');
const match = await page.evaluate(() => {
let match = [];
let elements = document.querySelectorAll('div.event__match'); // Select all Products
for (element of elements){
match.push({
date: element.querySelector('div.event__time').innerText,
home: element.querySelector('div.event__participant--home').innerText,
scorehome: element.querySelector('div.event__score--home').innerText,
scoreaway: element.querySelector('div.event__score--away').innerText,
away: element.querySelector('div.event__participant--away').innerText
})
}
return match;
});
console.log(match);
await browser.close();
})(); |