【问题标题】:How to scrape/extract specific Balance Sheet fields from Yahoo Finance from a list of stock tickers?如何从股票代码列表中从雅虎财经中抓取/提取特定的资产负债表字段?
【发布时间】:2021-08-03 05:37:28
【问题描述】:

我在一个名为 stocktickers.csv 的文件中有一个代码列表(如下所示):

Tickers
AMD
AAPL
FB
MSFT
GOOG

我想从该列表中抓取 Yahoo Finance 资产负债表数据,并将其输入到 stocktickers.csv 文件中,如下所示。 “有形账面价值”和“已发行股份”是每个股票代码的资产负债表网页上的字段,例如 AMD 的:https://finance.yahoo.com/quote/AMD/balance-sheet?p=AMD

Tickers Tangible_BV Shares_Issued
AMD 1,000,000 500,000
AAPL 2,000,000 200,000
FB 3,000,000 300,000
MSFT 500,000 50,000
GOOG 4,000,000 400,000

这是我迄今为止所拥有的,它刮掉了所有年份的有形账面价值。

from bs4 import BeautifulSoup
import requests


header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
}

url = 'https://finance.yahoo.com/quote/AAPL/balance-sheet?p=AAPL'

response = requests.get(url, headers=header)

html = response.text
soup = BeautifulSoup(html, "html.parser")
main = soup.find("div", {"data-reactid": "195"}) #or 196
divs = main.find_all("div")

for div in divs:
    span = div.find("span")
    try:
        print(span.text)
    except:
        pass

结果:

   Tangible Book Value
Tangible Book Value
65,339,000
90,488,000
107,147,000
126,032,000

如果有一种方法可以使用get_balance_sheet()(来自yfinance module)来抓取特定的资产负债表字段,例如上面的那些,那也很棒。

【问题讨论】:

  • 为什么要使用 beautifulsoup 而不是 actual yfinance module
  • 谢谢。好点子。我确实安装了它并尝试过。但是,如何仅抓取特定字段,例如 2020 年度有形账面价值或从get_balance_sheet() 发行的股份,并将值插入到 .csv 文件中,同时使用代码列查找字段/超链接?谢谢
  • 我不确定,我只使用了该库的基础知识来获取价格历史记录。如果你edit这个问题包含get_balance_sheet()的输出,也许有人可以给出明确的答案。

标签: python web-scraping finance stock yahoo-finance


【解决方案1】:

尝试财务建模准备 API。您可以非常轻松地从 JSON 请求中获取该信息,因此您不必抓取它。

【讨论】:

  • 非常感谢您。我会检查一下并弄清楚如何使用它。我仍然想从雅虎之类的网站上抓取数据,因为一些场外交易和外国股票可能没有金融建模准备 API 上的可用数据。
  • 在这种情况下试试雅虎财务模块,它就是为此而生的。 pypi.org/project/yfinance
猜你喜欢
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多