(米株 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