J'essaie de créer une fonction Python capable de gratter les titres d'article d'un résultat de recherche sur le site Web de la science populaire.
J'ai écrit ce code, qui a travaillé pour un site Web similaire lié à la science, mais quand je l'exécute Spécifiquement pour la science populaire, il renvoie une liste vide. p>
code: p>
3 Réponses :
Vous pouvez utiliser pilote.implicitly_wait (10) code> pour attendre tandis que la page est chargée. from selenium import webdriver
def scrapper(text):
driver = webdriver.Chrome('./chromedriver')
driver.get(f"https://www.popsci.com/search-results/{text}/")
driver.implicitly_wait(10)
search = driver.find_elements_by_class_name("siq-partner-result")
wired_dict = [word.text for word in search]
print(wired_dict)
scrapper('sample')
Merci beaucoup SOOOOOOOOOOOOOO Beaucoup!
Cette page prend un certain temps à charger. Vous utilisez Vous pouvez tester cette théorie par La meilleure solution consiste à conserver la vérification jusqu'à ce que les éléments soient chargés avec pilote.find_elements_by_class_name code> avant la fin de la page de chargement, il ne trouve donc pas ces éléments. heure d'importation code> et .sleep (5) code> juste avant le code de recherche. p> webDriverwait () code> Attendez que les éléments aient chargé. p>
Vous pouvez utiliser WebDriverWait pour l'élément souhaité à visible, puis essayer de trouver les éléments.
Utilisation de XPath: P>
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC