首页 > 解决方案 > 获取完整页面的历史数据,雅虎财经

问题描述

代码:

def get_Historical_data():
    symbol = input("Symbol")

    base_url = "https://finance.yahoo.com/quote/" + symbol + "/history?period1=" + str(start).replace(".0", "") + "&period2=" + str(
        end).replace(".0", "") + "&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true"

    try:
        response = requests.get(base_url).text

    except:
        print("Request gone wrong")

    print(base_url)
    soup = BeautifulSoup(response, "html.parser")
    table_data = soup.find_all("tr")

    for i in table_data:
        print(i.text)


get_Historical_data()

当我运行这个函数时,我得到这个结果:

DateOpenHighLowClose*Adj Close**Volume
Feb 01, 2021133.75135.38130.93134.14133.94106,239,800
Jan 29, 2021135.83136.74130.21131.96131.76177,180,600
Jan 28, 2021139.52141.99136.70137.09136.89142,621,100
Jan 27, 2021143.43144.30140.41142.06141.85140,843,800
Jan 26, 2021143.60144.30141.37143.16142.9598,390,600
Jan 25, 2021143.07145.09136.54142.92142.71157,611,700
Jan 22, 2021136.28139.85135.02139.07138.86114,459,400
Jan 21, 2021133.80139.67133.59136.87136.67120,529,500
Jan 20, 2021128.66132.49128.55132.03131.83104,319,500
Jan 19, 2021127.78128.71126.94127.83127.6490,757,300
Jan 15, 2021128.78130.22127.00127.14126.95111,598,500
Jan 14, 2021130.80131.00128.76128.91128.7290,221,800
Jan 13, 2021128.76131.45128.49130.89130.6988,636,800
Jan 12, 2021128.50129.69126.86128.80128.6191,951,100
Jan 11, 2021129.19130.17128.50128.98128.79100,620,900
Jan 08, 2021132.43132.63130.23132.05131.85105,158,200
Jan 07, 2021128.36131.63127.86130.92130.72109,578,200
Jan 06, 2021127.72131.05126.38126.60126.41155,088,000
Jan 05, 2021128.89131.74128.43131.01130.8197,664,900
Jan 04, 2021133.52133.61126.76129.41129.22143,301,900
Dec 31, 2020134.08134.74131.72132.69132.4999,116,600
Dec 30, 2020135.58135.99133.40133.72133.5296,452,100
Dec 29, 2020138.05138.79134.34134.87134.67121,047,300
Dec 28, 2020133.99137.34133.51136.69136.49124,486,200
Dec 24, 2020131.32133.46131.10131.97131.7754,930,100
Dec 23, 2020132.16132.43130.78130.96130.7688,223,700
Dec 22, 2020131.61134.41129.65131.88131.68168,904,800
Dec 21, 2020125.02128.31123.45128.23128.04121,251,600
Dec 18, 2020128.96129.10126.12126.66126.47192,541,500
Dec 17, 2020128.90129.58128.04128.70128.5194,359,800
Dec 16, 2020127.41128.37126.56127.81127.6298,208,600
Dec 15, 2020124.34127.90124.13127.88127.69157,572,300
Dec 14, 2020122.60123.35121.54121.78121.6079,184,500
Dec 11, 2020122.43122.76120.55122.41122.2386,939,800
Dec 10, 2020120.50123.87120.15123.24123.0681,312,200
Dec 09, 2020124.53125.95121.00121.78121.60115,089,200
Dec 08, 2020124.37124.98123.09124.38124.1982,225,500
Dec 07, 2020122.31124.57122.25123.75123.5786,712,000
Dec 04, 2020122.60122.86121.52122.25122.0778,260,400
Dec 03, 2020123.52123.78122.21122.94122.7678,967,600
Dec 02, 2020122.02123.37120.89123.08122.9089,004,200
Dec 01, 2020121.01123.47120.01122.72122.54128,166,800
Nov 30, 2020116.97120.97116.81119.05118.87169,410,200
Nov 27, 2020116.57117.49116.22116.59116.4246,691,300
Nov 25, 2020115.55116.75115.17116.03115.8676,499,200
Nov 24, 2020113.91115.85112.59115.17115.00113,874,200
Nov 23, 2020117.18117.62113.75113.85113.68127,959,300
Nov 20, 2020118.64118.77117.29117.34117.1673,604,300
Nov 19, 2020117.59119.06116.81118.64118.4674,113,000
Nov 18, 2020118.61119.82118.00118.03117.8576,322,100
Nov 17, 2020119.55120.67118.96119.39119.2174,271,000
Nov 16, 2020118.92120.99118.15120.30120.1291,183,000
Nov 13, 2020119.44119.67117.87119.26119.0881,581,900
Nov 12, 2020119.62120.53118.57119.21119.03103,162,300
Nov 11, 2020117.19119.63116.44119.49119.31112,295,000
Nov 10, 2020115.55117.59114.13115.97115.80138,023,400
Nov 09, 2020120.50121.99116.05116.32116.15154,515,300
Nov 06, 2020118.32119.20116.13118.69118.51114,457,900
Nov 06, 20200.205 Dividend
Nov 05, 2020117.95119.62116.87119.03118.65126,387,100
Nov 04, 2020114.14115.59112.35114.95114.58138,235,500
Nov 03, 2020109.66111.49108.73110.44110.09107,624,400
Nov 02, 2020109.11110.68107.32108.77108.42122,866,900
Oct 30, 2020111.06111.99107.72108.86108.51190,272,600
Oct 29, 2020112.37116.93112.20115.32114.95146,129,200
Oct 28, 2020115.05115.43111.10111.20110.84143,937,800
Oct 27, 2020115.49117.28114.54116.60116.2392,276,800
Oct 26, 2020114.01116.55112.88115.05114.68111,850,700
Oct 23, 2020116.39116.55114.28115.04114.6782,572,600
Oct 22, 2020117.45118.04114.59115.75115.38101,988,000
Oct 21, 2020116.67118.71116.45116.87116.4989,946,000
Oct 20, 2020116.20118.98115.63117.51117.13124,423,700
Oct 19, 2020119.96120.42115.66115.98115.61120,639,300
Oct 16, 2020121.28121.55118.81119.02118.64115,393,800
Oct 15, 2020118.72121.20118.15120.71120.32112,559,200
Oct 14, 2020121.00123.03119.62121.19120.80151,062,300
Oct 13, 2020125.27125.39119.65121.10120.71262,330,500
Oct 12, 2020120.06125.18119.28124.40124.00240,226,800
Oct 09, 2020115.28117.00114.92116.97116.59100,506,900
Oct 08, 2020116.25116.40114.59114.97114.6083,477,200
Oct 07, 2020114.62115.55114.13115.08114.7196,849,000
Oct 06, 2020115.70116.12112.25113.16112.80161,498,200
Oct 05, 2020113.91116.65113.55116.50116.13106,243,800
Oct 02, 2020112.89115.37112.22113.02112.66144,712,000
Oct 01, 2020117.64117.72115.83116.79116.41116,120,400
Sep 30, 2020113.79117.26113.62115.81115.44142,675,200
Sep 29, 2020114.55115.31113.57114.09113.7299,382,200
Sep 28, 2020115.01115.32112.78114.96114.59137,672,400
Sep 25, 2020108.43112.44107.67112.28111.92149,981,400
Sep 24, 2020105.17110.25105.00108.22107.87167,743,300
Sep 23, 2020111.62112.11106.77107.12106.78150,718,700
Sep 22, 2020112.68112.86109.16111.81111.45183,055,400
Sep 21, 2020104.54110.19103.10110.08109.73195,713,800
Sep 18, 2020110.40110.88106.09106.84106.50287,104,900
Sep 17, 2020109.72112.20108.71110.34109.99178,011,000
Sep 16, 2020115.23116.00112.04112.13111.77154,679,000
Sep 15, 2020118.33118.83113.61115.54115.17184,642,000
Sep 14, 2020114.72115.93112.80115.36114.99140,150,100
Sep 11, 2020114.57115.23110.00112.00111.64180,860,300
Sep 10, 2020120.36120.50112.50113.49113.13182,274,400
*Close price adjusted for splits.**Adjusted close price adjusted for both dividends and splits.

Process finished with exit code 0

如您所见,这几乎不是任何数据。

我想要的是整页数据,因为我目前正在制作一个脚本来抓取历史股票数据。我的问题是它只刮掉了部分页面。有没有办法获取页面上的所有信息,而不仅仅是加载的数量。感谢任何输入。

标签: pythonpython-3.x

解决方案


您是否尝试过 yfinance(https://pypi.org/project/yfinance/)?获取所有日期的代码是:

import yfinance as yf

data= yf.Ticker(symbol)

# get historical market data
hist = data.history(period="max")

推荐阅读