Przeglądanie terminów publikacji zysków giełdowych Yahoo Finance z Selenium
Chciałbym pobrać wszystkie informacje o firmie z sekcji „Symbol”, „Nazwa” i „Zarobki na telefon” na następującej stronie: https://finance.yahoo.com/calendar/earnings
Chciałbym również, aby selen przeszedł do najbliższej dostępnej daty zarobków i uzyskał te same informacje, co powyżej. Na przykład dzisiaj jest 18 listopada, więc chciałbym pobrać te same informacje z 19 listopada.
Wypróbowałem kilka sposobów, aby to zrobić z selenem, ale nie mogę.
Dziękuję za wszelką pomoc!
Odpowiedzi
Na początek adres URL przyjmuje parametry daty:
https://finance.yahoo.com/calendar/earnings?day=2020-11-19
Więc musisz skonstruować ten adres URL jako taki:
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)
następnie musisz pobrać elementy potrzebne do uzyskania danych. Na przykład:
driver.find_element_by_xpath("//*[@id='cal-res-table']//table")
Stamtąd zobacz pracę z tabelami w selenie tutaj: https://stackoverflow.com/a/32096039/1387701 i tu: https://www.techbeamers.com/handling-html-tables-selenium-webdriver/
Ale będziesz chciał użyć find_elements, aby znaleźć wiersze, a następnie wybierz stamtąd potrzebne td.