Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de filtrage d'une page avec BeautifulSoup

Accéder à un descendant éloigné d'une balise

    13 septembre 2020 à 5:46:07

    Bonjour,

    je cherche à accéder au résultat des rencontre sportifs sur un site et j'ai fait ça :

    import requests
    from bs4 import BeautifulSoup
    
    url_flashscrore_index = 'https://www.flashscore.fr/'
    
    response1 = requests.get(url_flashscrore_index)
    soup = BeautifulSoup(response1.text)
    div = soup.find_all("div", class_="event__match event__match--scheduled event__match--oneLine") 
    print(div)

    Mais tout ce qui s'affiche c'est ça :

    "[]" en gros il à rien trouver

    Alors que je peux très bien accéder à la balise div "grand-parent"de celle-ci de cette manière.

    Comment puis-je faire pour accéder à cette balise <div> contenant cette attribut class ?

    merci d'avance pour vos réponse

    -
    Edité par sarazin 13 septembre 2020 à 20:13:40

    • Partager sur Facebook
    • Partager sur Twitter
      13 septembre 2020 à 14:34:42

      Bonjour,

      Déplacement vers un forum plus approprié

      Le sujet est déplacé de la section PHP vers la section Langage Python

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        14 septembre 2020 à 1:40:22

        regarde la doc, avec bs4 tu  peux utiliser des sélecteurs css
        • Partager sur Facebook
        • Partager sur Twitter
          14 septembre 2020 à 15:55:25

          Bonjour,

          Oui, j'ai aussi utiliser les sélecteurs css, voici mon code :

          import requests
          from bs4 import BeautifulSoup
          
          url_flashscrore_index = 'https://www.flashscore.fr/'
          
          response1 = requests.get(url_flashscrore_index)
          
          soup = BeautifulSoup(response1.text)
          div = soup.select('.container__fsbody > #live-table > .event') 
          print(div)

          Mais rien n'y fait je n'arrive pas à accéder à tous les enfants de 

          <div id="live-table">

          le print() donne toujours "[]" mais en retirant le ".event" pour accéder à 

          en m'affiche juste deux de ces balises enfants et ces enfants alors qu'il en possédent plusieurs et 

          <div class="event">

          fait partit de cela.

          • Partager sur Facebook
          • Partager sur Twitter
            14 septembre 2020 à 16:05:40

            ne met pas les opérateurs dans ton select 

            div=soup.select('.container__fsbody #live-table .event')

            (tester dans la console web sur le site avec document.querySelectorAll('.container__fsbody #live-table .event') )

            • Partager sur Facebook
            • Partager sur Twitter
              14 septembre 2020 à 16:41:43

              J'ai essayer mais cela me renvoit toujours deux crochet vide sauf si je retire le ".event".

              Le .event n'est pas visible depuis le #live-table

              • Partager sur Facebook
              • Partager sur Twitter

              Problème de filtrage d'une page avec BeautifulSoup

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown