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

Réseau/Web Python Discussion :

Web scraping - fenêtre cookies


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 1
    Par défaut Web scraping - fenêtre cookies
    Bonjour,
    Je me heurte actuellement à un problème de cookies en essayer de scraper un site avec python. Mon objectif est de récupérer les données de mes séances de sport sur le site Garmin connect. Je sais qu'il existe une API mais je voudrais essayer d'accéder autrement au site (objectif de formation, je m'entraine...)
    Je suis bloqué sur la fenêtre "Accepter ou refuser les cookies" et ça me bloque pour le passage à la suite.
    Est-ce que quelqu'un saurait m'aider svp ?
    Je mets ci-dessous la copie d'écran de la fenêtre cookies, le html de la page et le message d'erreur à l'exécution de mon code.
    Merci beaucoup!

    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
    36
     
    from selenium import webdriver
    from selenium.webdriver import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.chrome.service import Service
    from webdriver_manager.chrome import ChromeDriverManager
    import time
     
    options = webdriver.ChromeOptions()
    options.add_experimental_option("prefs", {"profile.default_content_setting_values.cookies": 1})
    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
    driver.get("https://connect.garmin.com/signin/") #loading page
    wait = WebDriverWait(driver, 20) #defining webdriver wait
     
    #defining username and password
    username = 'mon_login'
    password = 'mon_password\n' #\n will act as enter key
     
    def login():
        wait.until(EC.visibility_of_element_located((By.XPATH, "//iframe[@id='gauth-widget-frame-gauth-widget']")))
        frameLogin = driver.find_element(By.XPATH, "//iframe[@id='gauth-widget-frame-gauth-widget']")
        driver.switch_to.frame(frameLogin)
        wait.until(EC.visibility_of_element_located((By.ID, 'username'))).send_keys(username) #userame/email
        wait.until(EC.visibility_of_element_located((By.ID, 'password'))).send_keys(password) #password
        time.sleep(5)
     
        #try to click on reject cookies
        wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//iframe[@class='truste_popframe']")))
        frameCookies = driver.find_element_by_xpath("//iframe[@class='truste_popframe']")
        driver.switch_to.frame(frameCookies)
        wait.until(EC.visibility_of_element_located((By.XPATH, ".//a[@class='acceptAllButtonLower']"))).click()
     
    login()
    print('Url: ', driver.current_url)
    Nom : html1.JPG
Affichages : 476
Taille : 58,5 Ko
    Nom : html2.JPG
Affichages : 414
Taille : 56,7 Ko
    Nom : erreur.JPG
Affichages : 412
Taille : 36,8 Ko
    Nom : cookies.JPG
Affichages : 418
Taille : 326,0 Ko

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 255
    Par défaut
    Hello,
    pour mémoriser les cookies, utiliser un cache etc ... il faut utiliser un profil .
    Pour faire cela dans selenium pour chrome il suffit d'indiquer le répertoire qui sera utiliser pour le profil des sessions selenium. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    options = Options()
    options.add_argument("--user-data-dir=D:\\Temp\\chrome")
    driver = webdriver.Chrome('chromedriver.exe',options=options)
    Ami calmant, J.P

Discussions similaires

  1. [Python 3.X] web scraping simple sans block parent
    Par markham dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 06/06/2017, 22h26
  2. Web parsing et web scraping
    Par langlois13 dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 10/01/2016, 19h05
  3. Web Scraping via R
    Par BlackSheitan dans le forum R
    Réponses: 4
    Dernier message: 25/09/2015, 11h44
  4. [D2007/web] Proxy + POST + cookie?
    Par fredtheman dans le forum Langage
    Réponses: 0
    Dernier message: 01/12/2008, 16h42
  5. [web] utilisation de cookie
    Par jim236 dans le forum Web
    Réponses: 2
    Dernier message: 12/06/2004, 00h12

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