裏・メモとか雑記とか♪の掲示板
-
16218
>>16217
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'xml')
entries = soup.find_all('entry')
xbrl_links = [entry.link.href.text for entry in entries if 'xbrl' in entry.link.type.text.lower()]
return xbrl_links
else:
print(f"Failed to fetch XBRL data. Status code: {response.status_code}")
return []
def extract_xbrl_data(xbrl_url):
response = requests.get(xbrl_url)
with ZipFile(BytesIO(response.content)) as zip_file:
# Assuming there is only one XBRL file in the ZIP archive
xbrl_file = zip_file.namelist()[0]
xbrl_content = zip_file.read(xbrl_file)
return xbrl_content
def parse_xbrl_data(xbrl_content, namespaces):
root = ET.fromstring(xbrl_content)
results = {}
for key, value in namespaces.items():
ET.register_namespace(key, value)
カニだよカニ(蟹江天直) 1月15日 12:56
>>16216
> 試しにChatGPTさんに書いてもらった、米国SEC版を書いてくれました
EDINET上のXBRL形式の決算短信データを抽出して、「売上高」や「営業利益」など項目ごとに分類整理するコードをPythonで書いてみてください
▶ChatGPT
EDINETからXBRL形式の決算短信データを抽出し、特定の項目を分類整理するためには、lxmlやxml.etree.ElementTreeなどのライブラリを使用してXMLを解析する必要があります。また、XBRLの構造は企業ごとに異なるため、具体的なXMLの構造に合わせてコードを書く必要があります。
以下は、一般的なXBRLの解析のスケッチです。これを参考に、具体的なXBRLファイルの構造に合わせてコードを調整してください。
import requests
from bs4 import BeautifulSoup
from zipfile import ZipFile
from io import BytesIO
import xml.etree.ElementTree as ET
def download_xbrl_data(cik, doc_type='edgar', start=0, count=5):
base_url = f'https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK={cik}&type={doc_type}&start={start}&count={count}&output=atom'
response = requests.get(base_url)