Je dois gratter tous les détails de l'événement depuis le site Web AXS.com en tant que composant sur mon affectation WebScraping. J'ai essayé d'utiliser le pilote Web Chrome avec Python + sélénium.
Je suis capable d'obtenir la valeur en utilisant Mais cela n'obtient que le premier élément. Je suis resté coincé pendant que j'ai essayé d'itération après avoir utilisé attendu: p> pilote.find_element_by_class_name () code> E.G.
pilote.find_element_by_class_name ("HeadLiner"). Texte code>. P>
pilote.find_elements (by.xpath, "// div [@ @ class =" Résultats-Tableaux-Tableaux - Events '] ") code>. p>
3 Réponses :
Modifier la logique ci-dessous.
from bs4 import BeautifulSoup from selenium import webdriver import time driver = webdriver.Chrome('/home/.../chromedriver_linux64/chromedriver') driver.get("https://www.axs.com/browse/music/alternative-punk") driver.implicitly_wait(10) allevent_details = driver.find_elements(By.XPATH,"//div[@class='results-table results-table--events']//div[@class='headliner']") for i in allevent_details: print(i.text)
Essayez l'un des localisateurs suivants.
for item in driver.find_elements_by_css_selector('.headliner'): print(item.text)
Pour extraire tous les em> les lignes d'événement em> à partir du webpage < / a> Vous devez induire webdiverwait em> pour le en utilisant en utilisant Sortie de la console: P>
note forte>: Vous devez ajouter les importations suivantes: p>
visibilité_of_all_elements_located () code> et vous pouvez utiliser l'un des éléments suivants Stratégies de localisation :
css_selector code>: p>
xpath code>: p>