Selenium으로 Yahoo Finance 주식 수익 발표 날짜를 긁어 모으기

Nov 19 2020

다음 페이지에서 "Symbol", "Name"및 "Earnings Call Time"아래에있는 모든 회사 정보를 스크랩하고 싶습니다. https://finance.yahoo.com/calendar/earnings

또한 셀레늄이 사용 가능한 다음 수입 날짜로 이동하여 위와 동일한 정보를 얻길 바랍니다. 예를 들어 오늘은 11 월 18 일이므로 11 월 19 일에 대해 동일한 정보를 가져오고 싶습니다.

셀레늄으로 여러 가지 방법을 시도했지만 할 수 없습니다.

도움을 주셔서 감사합니다!

답변

DMart Nov 19 2020 at 05:51

우선 URL은 날짜 매개 변수를 사용합니다.

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

따라서 해당 URL을 다음과 같이 구성해야합니다.

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)

그런 다음 데이터를 얻는 데 필요한 요소를 가져와야합니다. 예를 들면 :

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

여기에서 셀레늄으로 테이블 작업을 참조하십시오. https://stackoverflow.com/a/32096039/1387701 그리고 여기: https://www.techbeamers.com/handling-html-tables-selenium-webdriver/

그러나 find_elements를 사용하여 행을 찾은 다음 거기에서 필요한 td를 선택하고 싶을 것입니다.