yfinaceは財務データや株価等を取得するライブラリですが最近更新があってsecfilling(有価証券報告書)も取得できるようになってました。
試しにaapl(アップル)の有価証券報告書のurlを取得してみました。
import pandas as pd
import yfinance as yf
# 企業のティッカーシンボルを指定してオブジェクトを作成
apple = yf.Ticker("AAPL")
# SECフィリングデータを取得
sec_filings = apple.get_sec_filings()
# データの整理:必要な情報をリストに格納
data = []
for filing in sec_filings:
# exhibits のそれぞれを別行にする
for key, value in filing['exhibits'].items():
entry = {
'date': filing['date'],
'type': filing['type'],
'title': filing['title'],
'edgarUrl': filing['edgarUrl'],
'document_type': key,
'document_link': value
}
data.append(entry)
# DataFrameに変換
df = pd.DataFrame(data)
# CSVに出力
df.to_csv('sec_filings_exhibits_separated.csv', index=False, encoding='utf-8-sig')
print("データが sec_filings_exhibits_separated.csv に保存されました。")
url一覧を取得できました。
下記では取得したurlをダウンロードしてます
import requests
# ダウンロードするURL
url = "https://cdn.yahoofinance.com/prod/sec-filings/0000320193/000032019324000081/aapl-20240629.htm#i399fc64bbe494642a709f5ddee803e6a_13"
# 取得するファイルの名前を指定(任意)
filename = "aapl-20240629.htm"
# URLからコンテンツをダウンロード
response = requests.get(url)
# ダウンロードが成功したかをチェック
if response.status_code == 200:
# ファイルを書き込みモードで開き、コンテンツを保存
with open(filename, 'wb') as file:
file.write(response.content)
print(f"ファイル {filename} が正常にダウンロードされました。")
else:
print(f"ファイルのダウンロードに失敗しました。ステータスコード: {response.status_code}")