0
votes

Itération sur le pilote de Selenium webdiver.Find_Elements

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 pilote.find_element_by_class_name () E.G. pilote.find_element_by_class_name ("HeadLiner"). Texte .

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é pilote.find_elements (by.xpath, "// div [@ @ class =" Résultats-Tableaux-Tableaux - Events '] ") . xxx

erreur xxx

attendu:

  • Wave intérieure
  • bloxx .... etc

0 commentaires

3 Réponses :


0
votes

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)


0 commentaires

0
votes

Essayez l'un des localisateurs suivants.

Utilisation XPath H2>
for item in driver.find_elements_by_css_selector('.headliner'):
    print(item.text)


0 commentaires

0
votes

Pour extraire tous les les lignes d'événement à partir du webpage < / a> Vous devez induire webdiverwait pour le visibilité_of_all_elements_located () et vous pouvez utiliser l'un des éléments suivants Stratégies de localisation :

  • en utilisant css_selector : XXX

  • en utilisant xpath : XXX

  • Sortie de la console: XXX

  • note : Vous devez ajouter les importations suivantes: XXX


0 commentaires