Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichage avec Selenium

Sujet résolu
    10 novembre 2022 à 14:12:48

    Bonjour, j'utilise selenium mais je n'arrive pas a afficher des données, j'ai testé plein de variante mais sans jamais aboutir. Je me demande s'il y a des données qu'on ne peut pas "prendre". 

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.service import Service
    from time import sleep
    import requests
    from bs4 import BeautifulSoup
    
    s=Service('chromedriver.exe')
    browser = webdriver.Chrome(service=s)
    url='https://miningpoolstats.stream/'
    browser.get(url)
    sleep(3)
    PRICE=browser.find_elements(By.XPATH,'//*[@id="coins"]/tbody/tr[1]/td[6]/span')
    for price in PRICE:
        print(price.text)

    Le programme me renvoye rien alors qu'il devrait me renvoyer le prix du btc.

    Merci d'avance.

    -
    Edité par JeanLalouche1 11 novembre 2022 à 15:25:22

    • Partager sur Facebook
    • Partager sur Twitter
      10 novembre 2022 à 16:00:07

      Bonjour, Évitez les titres de sujet avec "problème" si vous poster on se doute que vous avez un problème l'indiquer dans le titre n'apporte aucune information supplémentaire quant au contenu du sujet.   

      Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: python;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        10 novembre 2022 à 16:48:05

        essai avec price.getText() au lieu de price.text
        • Partager sur Facebook
        • Partager sur Twitter
          11 novembre 2022 à 9:53:25

          Merci

          J'ai testé mais le programme ne connait pas cette commande, sais tu quel biblio faut importer.

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            11 novembre 2022 à 12:02:49

            Bjr,

            J'ai mis un p'tit temps à comprendre, l'affichage des colonnes est fonction de la taille de la fenêtre ;-)

            from selenium import webdriver
            from selenium.webdriver.common.by import By
            from selenium.webdriver.chrome.options import Options
            from selenium.webdriver.chrome.service import Service 
            from time import sleep
            from subprocess import CREATE_NO_WINDOW #Windows only
            
            chrome_options = Options()
            chrome_options.add_argument("--headless")
            chrome_options.add_argument('window-size=1920x1080')
            
            chrome_service = Service('chromedriver')
            chrome_service.creationflags = CREATE_NO_WINDOW
            
            browser = webdriver.Chrome(options=chrome_options, service=chrome_service)
            
            url='https://miningpoolstats.stream/'
            browser.get(url)
            sleep(5) #Ce n'est pas la meilleure méthode... 
            
            PRICE=browser.find_element(By.XPATH,'//*[@id="coins"]/tbody/tr[1]/td[6]')
            print(PRICE.text)
            
            browser.quit()


            PS : merci d'avoir fourni un exemple minimal de code ! =)

            -
            Edité par Anonyme 11 novembre 2022 à 14:32:10

            • Partager sur Facebook
            • Partager sur Twitter
              11 novembre 2022 à 15:26:52

              Bonjour, merci beaucoup, ca marche parfaitement. 

              C'est vrai que cette page est un peu bizarre.

              Je reviendrai peut-être vers vous pour d'autre question.

              -
              Edité par JeanLalouche1 11 novembre 2022 à 15:27:05

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                11 novembre 2022 à 18:21:14

                N'hésitez pas !

                Et n'oubliez pas de mettre le sujet en résolu. ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  12 novembre 2022 à 11:37:51

                  Tu serais comment faire une boucle en changeant une donnée dans le XPATH, par exemple 
                  //*[@id="coins"]/tbody/tr[1]/td[6]
                  Faire une boucle qui modifie le tr passer de tr[1] à tr[2] ainsi de suite
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    12 novembre 2022 à 20:19:57

                    Vous ne savez pas faire ça ? 

                    for i in range(1,6):
                        print(f'Toto a {i} ballon{"s"*(i>1)}')

                    https://frederic-lang.developpez.com/tutoriels/python/python-de-zero/?page=formatage-des-chaines#LVII

                    Pour ma part j'aime les f-strings, libre à vous de choisir...

                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 novembre 2022 à 9:46:33

                      J'avais tenté cette technique mais cela ne marchait pas. J'ai réussi après quelque teste, avec .format.

                      Merci

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Affichage avec Selenium

                      × 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