Gratter les dates de publication des bénéfices des actions Yahoo Finance avec Selenium

Nov 19 2020

Je souhaite récupérer toutes les informations sur l'entreprise sous "Symbole", "Nom" et "Heure d'appel pour les revenus" à partir de la page suivante: https://finance.yahoo.com/calendar/earnings

Je voudrais également que le sélénium aille à la toute prochaine date de revenus disponible et récupère les mêmes informations que ci-dessus. Par exemple, nous sommes aujourd'hui le 18 novembre, alors j'aimerais récupérer les mêmes informations pour le 19 novembre.

J'ai essayé plusieurs façons de faire cela avec du sélénium mais je ne peux pas.

Merci pour votre aide!

Réponses

DMart Nov 19 2020 at 05:51

Pour commencer, l'URL prend des paramètres de date:

https://finance.yahoo.com/calendar/earnings?day=2020-11-19

Vous devez donc construire cette URL en tant que telle:

import datetime
tomorrow = (datetime.date.today() + datetime.timedelta(days=1)).isoformat() #get tomorrow in iso format as needed
url = "https://finance.yahoo.com/calendar/earnings?day="+tomorrow
print ("url: " + url)

alors vous devez saisir les éléments dont vous avez besoin pour obtenir des données. Par example:

driver.find_element_by_xpath("//*[@id='cal-res-table']//table")

À partir de là, voir travailler avec des tables en sélénium ici: https://stackoverflow.com/a/32096039/1387701 et ici: https://www.techbeamers.com/handling-html-tables-selenium-webdriver/

Mais vous voudrez utiliser find_elements pour trouver les lignes, puis sélectionner les td dont vous avez besoin à partir de là.