J'ai écrit un script en utilisant python avec du sélénium pour gratter les noms des restaurants à partir d'une page Web. Cela marche très bien si je code en dur le nombre de montant que je veux analyser. La page a un processus de chargement paresseux et il affiche 40 noms dans chaque rouleau. Cependant, mon script peut le gérer. La seule chose que je voudrais améliorer dans mon script est que je ne souhaite pas coder en dur le nombre; Au contraire, je veux qu'il détecte lui-même combien sont là et l'analyse avec succès. J'espère qu'il y a quelqu'un pour aider. Voici le code:Comment automatiser l'exploration sans coder en dur un nombre quelconque?
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.yellowpages.ca/search/si/1/pizza/Toronto')
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3)
links = [posts.text for posts in driver.find_elements_by_xpath("//div[@itemprop='itemListElement']//h3[@itemprop='name']/a")]
if (len(links) == 240):
break
for link in links:
print(link)
driver.quit()
Merci Guy, pour votre réponse. J'ai essayé tout à l'heure avec votre code suggéré. Il donne 80 liens seulement. Vous pouvez vérifier si j'ai été en mesure de suivre votre instruction correctement en suivant le lien. "https://www.dropbox.com/s/78gmeij5efwm8gn/Modified%20code.txt?dl=0" – SIM
@ SMth80 Supprimer la pause. La condition 'while' gèrera la sortie de la boucle. – Guy
Je l'ai fait et trouvé 40 liens cette fois. – SIM