Wo kann ich historische Marktkapitalisierungs- und tägliche Umsatzdaten für Aktien herunterladen?

11

Es gibt viele Quellen, die die historischen Bestandsdaten liefern, aber sie liefern nur die OHLC-Felder zusammen mit dem Volumen und dem angepassten Abschluss. Einige Quellen, die ich gefunden habe, bieten auch Marktkapitalisierungsdatensätze, die jedoch auf US-Aktien beschränkt sind. Yahoo Finance stellt diese Daten online zur Verfügung, es gibt jedoch keine Möglichkeit, sie herunterzuladen (oder keine, die mir bekannt sind).

  • Wo kann ich diese Daten für Aktien verschiedener Top-Börsen in verschiedenen Ländern unter Verwendung ihres Tickernamens herunterladen?
  • Gibt es eine Möglichkeit, es über Yahoo Finance oder Google Finance herunterzuladen?

Ich benötige Daten für das letzte Jahrzehnt oder so und benötige daher ein Skript oder eine API, die dies tun würde.

Tejaskhot
quelle

Antworten:

3

Was das Sammeln von Daten angeht , können Sie Quandl ausprobieren (es gibt ein Tutorial zur Verwendung mit R auf DataCamp, wenn Sie interessiert sind).

Darüber hinaus enthält die Website von Aswath Damodaran viele hilfreiche Datensätze. Obwohl sie nicht so häufig aktualisiert werden, können sie dennoch nützlich sein, insbesondere als Benchmark für den Vergleich Ihrer eigenen Ausgabe (aus den Skripten müssen Sie zwangsläufig schreiben, um die erforderlichen Metriken zu berechnen).

Und wieder ist Quant SE wahrscheinlich ein besserer Ort, um zu suchen ...

Steve S.
quelle
1

Ich würde es so machen.

import requests
from bs4 import BeautifulSoup

base_url = 'https://finviz.com/screener.ashx?v=152&s=ta_topgainers&o=price&c=1,2,6,7,25,65,67'
html = requests.get(base_url)
soup = BeautifulSoup(html.content, "html.parser")
main_div = soup.find('div', attrs = {'id':'screener-content'})

light_rows = main_div.find_all('tr', class_="table-light-row-cp")
dark_rows = main_div.find_all('tr', class_="table-dark-row-cp")

data = []
for rows_set in (light_rows, dark_rows):
    for row in rows_set:
        row_data = []
        for cell in row.find_all('td'):
            val = cell.a.get_text()
            row_data.append(val)
        data.append(row_data)

#   sort rows to maintain original order
data.sort(key=lambda x: int(x[0]))

import pandas
pandas.DataFrame(data).to_csv("AAA.csv", header=False)
ASCHE
quelle