雅虎财经下载数据

问题描述 投票:-4回答:2

我正在尝试刮取finance.yahoo.com并下载数据文件。具体来说,这个网址:https://finance.yahoo.com/quote/AAPL/history?p=AAPL

我想在这里完成两个目标:1)我想将数据时间段参数设置为“Max”,我相信我需要使用Selenium和2)想要下载并保存嵌入的数据文件在检查“下载数据”时出现的href中。

到目前为止,我无法访问单击“Max”所需的下拉列表,也无法找到下载文件所需的href。

任何帮助将不胜感激。

from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options

options = webdriver.ChromeOptions()
options.add_argument('--log-level=3')

stock = input()
base_url = 'https://finance.yahoo.com/quote/{}/history?p= 
{}'.format(stock,stock)
driver = webdriver.Chrome()
driver.get(base_url)
driver.maximize_window()
driver.implicitly_wait(4)
driver.find_element_by_class_name("Fl(end) Mt(3px) Cur(p)").click()
time.sleep(4)
driver.quit()
python web-scraping finance
2个回答
0
投票

以下显示了您可以使用的选择器。我没有添加任何等待条件作为唯一需要的条件,在我的测试运行中,我找不到;按“应用”按钮后,等待所有新数据出现。相反,我使用硬编码的time.sleep(5),如果可能的话,应该用更好的基于条件的等待替换。

from selenium import webdriver
# from selenium.webdriver.common.by import By
# from selenium.webdriver.support.ui import WebDriverWait
# from selenium.webdriver.support import expected_conditions as EC
import time

d = webdriver.Chrome()
d.get('https://finance.yahoo.com/quote/AAPL/history?p=AAPL')
try:
    d.find_element_by_css_selector('[name=agree]').click() #oauth
except:
    pass

d.find_element_by_css_selector('[data-icon=CoreArrowDown]').click() #dropdown
d.find_element_by_css_selector('[data-value=MAX]').click() #max
d.find_element_by_css_selector('button.Fl\(start\)').click() # done
d.find_element_by_css_selector('button.Fl\(end\) span').click() #apply
time.sleep(5)
d.find_element_by_css_selector('[download]').click() #download

0
投票

您可以立即消除#1 - 只需直接查看页面,按要求传递参数。

基URI是:https://finance.yahoo.com/quote/AAPL/history

可用的参数是:period1period2intervalfilterfrequency

非常简单,现在只需抓住一个纪元时间戳,并将其用作period2参数,其中period1可以简单地作为开始时代0intervalfrequency可以是你想要的任何东西;每日1d,每周1wk或每月1mo。最后,filter应该是history

完成的URI:

https://finance.yahoo.com/quote/AAPL/history?period1=0&period2=1555905600&interval=1d&filter=history&frequency=1d

从那里,使用Selenium找到并单击Download Data链接。

我也贬低了你,因为你显然没有任何努力为自己解决这个问题。

更新:

正如@QHarr所说,堆栈溢出有很多问题,详细说明如何使用雅虎财务。我还建议你给searching一个旋转。

© www.soinside.com 2019 - 2024. All rights reserved.