(米株 X 文系のPython) Yahoo Financeから過去4四半期の売上高をスクレイピングする
以前に書いたYahoo FinanceからPythonでデータをスクレイピングするやりかた使えなくなってたので、更新版です。
Yahoo_finというyahoo financeのAPIを使ってデータ取得するやり取りをPython用に簡単にしてくれてるラッパーを使ったらすごく簡単にできました。
まず、コマンドプロンプトを開き、pipでYahoo_finをインストールします。
pip install yahoo_fin
ここからはテキストエディタでPythonコードを書きます。
1. まずは事前準備。yahoo_finとpandasをインポート。空のリスト(lst)と辞書(dict)を作る。
import yahoo_fin.stock_info as si
import pandas as pd
lst = []
dict = {}
2. ティッカーシンボルをコマンドプロンプト入力させ、順次リスト(lst)に入れるループ分を作る
while True:
x = input('input Ticker symbol (input \"done\" when you finish):')
if x == ("done"):
break
lst.append(x)
3. リスト(lst)でループさせ、ティッカーシンボルごとにそれぞれインカムステートメントを取得する。そして売上だけ抜き出してrevlistという新たなリストに入れてprintする。
for ticker in lst:
df = si.get_income_statement(ticker, yearly = False) # get quarterly data
#df = si.get_income_statement(ticker) # get yearly data
revlist = df.loc["totalRevenue"]
print(ticker, "\n", revlist)
コマンドプロンプトの出力はこんな感じ。
input Ticker symbol (input "done" when you finish):GOOG
input Ticker symbol (input "done" when you finish):AMZN
input Ticker symbol (input "done" when you finish):done
GOOG
endDate
2020-06-30 38297000000
2020-03-31 41159000000
2019-12-31 46075000000
2019-09-30 40499000000
Name: totalRevenue, dtype: object
AMZN
endDate
2020-06-30 88912000000
2020-03-31 75452000000
2019-12-31 87436000000
2019-09-30 69981000000
Name: totalRevenue, dtype: object