4 pièce(s) jointe(s)
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:
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) |
Pièce jointe 615570
Pièce jointe 615571
Pièce jointe 615572
Pièce jointe 615569