Entschuldigung im Voraus für die lange Frage – ich bin Python-Neuling und versuche, eine ziemlich spezifische Situation so deutlich wie möglich zu formulieren.
Ich versuche routinemäßig, bestimmte Datenpunkte aus SEC-Einreichungen zu identifizieren, möchte dies jedoch automatisieren, anstatt manuell nach der CIK-ID und Formulareinreichung eines Unternehmens suchen zu müssen. Bisher konnte ich Metadaten zu allen Einreichungen herunterladen, die in einem bestimmten Zeitraum bei der SEC eingegangen sind. Es sieht so aus:
index cik conm type date path
0 0 1000045 NICHOLAS FINANCIAL INC 10-Q 2019-02-14 edgar/data/1000045/0001193125-19-039489.txt
1 1 1000045 NICHOLAS FINANCIAL INC 4 2019-01-15 edgar/data/1000045/0001357521-19-000001.txt
2 2 1000045 NICHOLAS FINANCIAL INC 4 2019-02-19 edgar/data/1000045/0001357521-19-000002.txt
3 3 1000045 NICHOLAS FINANCIAL INC 4 2019-03-15 edgar/data/1000045/0001357521-19-000003.txt
4 4 1000045 NICHOLAS FINANCIAL INC 8-K 2019-02-01 edgar/data/1000045/0001193125-19-024617.txt
Obwohl ich über alle diese Informationen verfüge und diese Textdateien herunterladen und die zugrunde liegenden Daten sehen kann, kann ich diese Daten nicht analysieren, da sie im xbrl-Format vorliegen und etwas außerhalb meines Steuerhauses liegen. Stattdessen bin ich auf dieses Skript gestoßen (freundlicherweise bereitgestellt von dieser Website https://www.codeproject.com/Articles/12 ... ith-Python):
from bs4 import BeautifulSoup
import requests
import sys
# Access page
cik = '0000051143'
type = '10-K'
dateb = '20160101'
# Obtain HTML for search page
base_url = "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK={}&type={}&dateb={}"
edgar_resp = requests.get(base_url.format(cik, type, dateb))
edgar_str = edgar_resp.text
# Find the document link
doc_link = ''
soup = BeautifulSoup(edgar_str, 'html.parser')
table_tag = soup.find('table', class_='tableFile2')
rows = table_tag.find_all('tr')
for row in rows:
cells = row.find_all('td')
if len(cells) > 3:
if '2015' in cells[3].text:
doc_link = 'https://www.sec.gov' + cells[1].a['href']
# Exit if document link couldn't be found
if doc_link == '':
print("Couldn't find the document link")
sys.exit()
# Obtain HTML for document page
doc_resp = requests.get(doc_link)
doc_str = doc_resp.text
# Find the XBRL link
xbrl_link = ''
soup = BeautifulSoup(doc_str, 'html.parser')
table_tag = soup.find('table', class_='tableFile', summary='Data Files')
rows = table_tag.find_all('tr')
for row in rows:
cells = row.find_all('td')
if len(cells) > 3:
if 'INS' in cells[3].text:
xbrl_link = 'https://www.sec.gov' + cells[2].a['href']
# Obtain XBRL text from document
xbrl_resp = requests.get(xbrl_link)
xbrl_str = xbrl_resp.text
# Find and print stockholder's equity
soup = BeautifulSoup(xbrl_str, 'lxml')
tag_list = soup.find_all()
for tag in tag_list:
if tag.name == 'us-gaap:stockholdersequity':
print("Stockholder's equity: " + tag.text)
Das Ausführen dieses Skripts funktioniert genau so, wie ich es möchte. Es gibt das Eigenkapital eines bestimmten Unternehmens (in diesem Fall IBM) zurück, und ich kann diesen Wert dann in eine Excel-Datei schreiben.
Meine zweiteilige Frage lautet wie folgt:
Ich habe die drei relevanten Spalten (CIK, Typ und Datum) aus meiner ursprünglichen Metadatentabelle oben genommen und sie in eine Liste von Tupeln geschrieben – ich glaube, so heißt sie – sie sieht so aus [('1009759', 'D', '20190215'),('1009891', 'D', '20190206'),...]). Wie nehme ich diese Daten, ersetze den ersten Teil des Skripts, den ich gefunden habe, und durchlaufe sie effizient, damit ich am Ende eine Liste der gewünschten Werte für jedes Unternehmen, jede Einreichung und jedes Datum erhalte?
Gibt es im Allgemeinen eine bessere Möglichkeit, dies zu tun? Ich denke, es gäbe eine Art API oder ein Python-Paket, um die Daten, die mich interessieren, abzufragen. Ich weiß, dass es für Form 10-Ks und Form 10-Qs einige hochrangige Informationen gibt, ich befinde mich jedoch in Form Ds, was etwas unklar ist. Ich möchte nur sicherstellen, dass ich meine Zeit effektiv mit der bestmöglichen Lösung verbringe.
Entschuldigung im Voraus für die lange Frage – ich bin Python-Neuling und versuche, eine ziemlich spezifische Situation so deutlich wie möglich zu formulieren.
Ich versuche routinemäßig, bestimmte Datenpunkte aus SEC-Einreichungen zu identifizieren, möchte dies jedoch automatisieren, anstatt manuell nach der CIK-ID und Formulareinreichung eines Unternehmens suchen zu müssen. Bisher konnte ich Metadaten zu allen Einreichungen herunterladen, die in einem bestimmten Zeitraum bei der SEC eingegangen sind. Es sieht so aus:
[code]index cik conm type date path 0 0 1000045 NICHOLAS FINANCIAL INC 10-Q 2019-02-14 edgar/data/1000045/0001193125-19-039489.txt 1 1 1000045 NICHOLAS FINANCIAL INC 4 2019-01-15 edgar/data/1000045/0001357521-19-000001.txt 2 2 1000045 NICHOLAS FINANCIAL INC 4 2019-02-19 edgar/data/1000045/0001357521-19-000002.txt 3 3 1000045 NICHOLAS FINANCIAL INC 4 2019-03-15 edgar/data/1000045/0001357521-19-000003.txt 4 4 1000045 NICHOLAS FINANCIAL INC 8-K 2019-02-01 edgar/data/1000045/0001193125-19-024617.txt [/code]
Obwohl ich über alle diese Informationen verfüge und diese Textdateien herunterladen und die zugrunde liegenden Daten sehen kann, kann ich diese Daten nicht analysieren, da sie im xbrl-Format vorliegen und etwas außerhalb meines Steuerhauses liegen. Stattdessen bin ich auf dieses Skript gestoßen (freundlicherweise bereitgestellt von dieser Website https://www.codeproject.com/Articles/1227765/Parsing-XBRL-with-Python):
# Access page cik = '0000051143' type = '10-K' dateb = '20160101'
# Obtain HTML for search page base_url = "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK={}&type={}&dateb={}" edgar_resp = requests.get(base_url.format(cik, type, dateb)) edgar_str = edgar_resp.text
# Find the document link doc_link = '' soup = BeautifulSoup(edgar_str, 'html.parser') table_tag = soup.find('table', class_='tableFile2') rows = table_tag.find_all('tr') for row in rows: cells = row.find_all('td') if len(cells) > 3: if '2015' in cells[3].text: doc_link = 'https://www.sec.gov' + cells[1].a['href']
# Exit if document link couldn't be found if doc_link == '': print("Couldn't find the document link") sys.exit()
# Obtain HTML for document page doc_resp = requests.get(doc_link) doc_str = doc_resp.text
# Find the XBRL link xbrl_link = '' soup = BeautifulSoup(doc_str, 'html.parser') table_tag = soup.find('table', class_='tableFile', summary='Data Files') rows = table_tag.find_all('tr') for row in rows: cells = row.find_all('td') if len(cells) > 3: if 'INS' in cells[3].text: xbrl_link = 'https://www.sec.gov' + cells[2].a['href']
# Obtain XBRL text from document xbrl_resp = requests.get(xbrl_link) xbrl_str = xbrl_resp.text
# Find and print stockholder's equity soup = BeautifulSoup(xbrl_str, 'lxml') tag_list = soup.find_all() for tag in tag_list: if tag.name == 'us-gaap:stockholdersequity': print("Stockholder's equity: " + tag.text) [/code]
Das Ausführen dieses Skripts funktioniert genau so, wie ich es möchte. Es gibt das Eigenkapital eines bestimmten Unternehmens (in diesem Fall IBM) zurück, und ich kann diesen Wert dann in eine Excel-Datei schreiben.
Meine zweiteilige Frage lautet wie folgt:
[list] [*]Ich habe die drei relevanten Spalten (CIK, Typ und Datum) aus meiner ursprünglichen Metadatentabelle oben genommen und sie in eine Liste von Tupeln geschrieben – ich glaube, so heißt sie – sie sieht so aus [('1009759', 'D', '20190215'),('1009891', 'D', '20190206'),...]). Wie nehme ich diese Daten, ersetze den ersten Teil des Skripts, den ich gefunden habe, und durchlaufe sie effizient, damit ich am Ende eine Liste der gewünschten Werte für jedes Unternehmen, jede Einreichung und jedes Datum erhalte? [*]Gibt es im Allgemeinen eine bessere Möglichkeit, dies zu tun? Ich denke, es gäbe eine Art API oder ein Python-Paket, um die Daten, die mich interessieren, abzufragen. Ich weiß, dass es für Form 10-Ks und Form 10-Qs einige hochrangige Informationen gibt, ich befinde mich jedoch in Form Ds, was etwas unklar ist. [url=viewtopic.php?t=30561]Ich möchte[/url] nur sicherstellen, dass ich meine Zeit effektiv mit der bestmöglichen Lösung verbringe. [/list]
Ich habe versucht, 300 verknüpfte Dateien von der AAER-Site der SEC herunterzuladen. Die meisten Links sind PDFs, aber einige sind Websites, die ich als PDF speichern müsste, anstatt sie nur...
Ich habe versucht, 300 verknüpfte Dateien von der AAER-Site der SEC herunterzuladen. Die meisten Links sind PDFs, aber einige sind Websites, die ich als PDF speichern müsste, anstatt sie nur...
Bei Verwendung von quarkus-webockets-next können Sie unterstützte Subprotokolle konfigurieren und Quarkus den SEC-Websocket-Protocol Header des Clients über:
> > > > > > > > > verbreiten > >...
Ich habe ein 9 * 9-Raster in XAML, das unten rechts ein 8 * 8-Unterraster und eine Ersatzzeile und -spalte enthalten muss, um die Summen jeder Zahl im Unterraster anzuzeigen, dargestellt durch ein...