Je suis assez nouveau dans le web scraping. J'essaie d'écrire quelque chose en python avec selenium qui se connectera automatiquement à un site web et cliquera sur plusieurs options d'un menu déroulant. Une fois toutes ces options définies, un bouton sera cliqué et une nouvelle page apparaîtra avec plusieurs liens hypertextes. C'est là que je rencontre des problèmes. J'essaie de cliquer sur tous les liens hypertextes, mais tous les liens hypertextes ont cette structure
Export
Où seuls 'life=1' et 'smo=1' peuvent être modifiés en autre chose dans le code HTML ci-dessus.
La plupart des autres problèmes que j'ai rencontrés ici ont tendance à avoir des liens hypertextes avec une classe ou quelque chose du genre qui facilite le clic sur ces liens.
Le code ci-dessous est ce que j'ai écrit jusqu'à présent.
import selenium, time
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup, SoupStrainer
import requests
#identifiants
usernameStr = 'NomUtilisateur'
passwordStr = 'MotDePasse'
browser = webdriver.Firefox(executable_path = r'C:\Users\Name\Downloads\geckodriver-v0.24.0-win64\geckodriver.exe')
url = 'http://quelquesite.com/quelquechose/'
browser.get(url)
username = browser.find_element_by_id('username')
username.send_keys(usernameStr)
password = browser.find_element_by_id('password')
password.send_keys(passwordStr)
loginInButton = browser.find_element_by_id("login")
loginInButton.click()
browser.find_element_by_xpath("//*[@id='LifeType']").send_keys("Dual")
browser.find_element_by_id("btnRefresh").click()
browser.find_element_by_id("btnExport").click()
other_url = 'http://quelquesite.com/some/exportToExcelChoice.asp?qt=1&qa=0&ben=1&tpt=0&gl=1&cl=CAESFFHIILNI'
ci-dessous est où je rencontre les problèmes
page = requests.get(other_url)
data = page.text
soup = BeautifulSoup(data, features="html.parser")
for link in soup.find_all('a'):
link.get('href')
browser.find_element_by_link_text("Export").click()
Avec Beautiful Soup, je peux facilement afficher les liens requis, mais je ne suis pas sûr que ce soit nécessaire puisque je ne peux pas cliquer sur les liens. Je suis toujours en train de résoudre ce problème.
PS Je sais que ce n'est pas strictement du web scraping car tout ce que je fais est de cliquer sur des boutons dans le but ultime de tout mettre dans un fichier csv.
HTML:
Quote
td {
font-size: 14px
}
Veuillez sélectionner le type de fichier csv que vous souhaitez générer
Veuillez être patient car cela peut prendre quelques instants !
Homme sExport
Homme sExport
Femme Non-sExport
Femme sExport
Joint Non-sExport
Joint sExport
Dual Non-sExport
Dual sExport