IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Click sur un élément d'une page pour afficher plus de donnée (scraping)


Sujet :

NodeJS

  1. #1
    Candidat au Club
    Homme Profil pro
    Personelle
    Inscrit en
    Juin 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Personelle

    Informations forums :
    Inscription : Juin 2022
    Messages : 2
    Points : 2
    Points
    2
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
    })();

  2. #2
    Candidat au Club
    Homme Profil pro
    Personelle
    Inscrit en
    Juin 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Personelle

    Informations forums :
    Inscription : Juin 2022
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai réussi a trouvé les ligne de code pour générer le click nécessaire.
    J'ai toujours un problème, j'essaye de le mettre dans une boucle While pour l'effectuer autant de foi que nécessaire pour afficher l'ensemble des matchs mais j'obtient une erreur.
    Voici mon nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
     
    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 more = await page.$$('a.event__more');
        while(page.querySelector('a.event__more').innerText == "Montrer plus de matchs"){
                await more[0].click();
                await page.waitForTimeout(5000);  
        };
     
        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();
     
    })();
    voici mon erreur:
    Nom : image_2022-06-09_220004598.png
Affichages : 93
Taille : 3,6 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Sharepoint 2010] Compteur de clicks sur les éléments d'une liste
    Par rohstev dans le forum Développement Sharepoint
    Réponses: 5
    Dernier message: 31/07/2015, 16h48
  2. Réponses: 1
    Dernier message: 08/07/2013, 07h30
  3. [POO] Simuler envoi de click sur élément dans une page HTML
    Par opsi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/09/2008, 13h24
  4. Réponses: 5
    Dernier message: 26/09/2007, 16h07
  5. Réponses: 2
    Dernier message: 12/03/2007, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo