【发布时间】: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
yfinancemodule? -
谢谢。好点子。我确实安装了它并尝试过。但是,如何仅抓取特定字段,例如 2020 年度有形账面价值或从
get_balance_sheet()发行的股份,并将值插入到 .csv 文件中,同时使用代码列查找字段/超链接?谢谢 -
我不确定,我只使用了该库的基础知识来获取价格历史记录。如果你edit这个问题包含
get_balance_sheet()的输出,也许有人可以给出明确的答案。
标签: python web-scraping finance stock yahoo-finance