Ich wollte den Aktienkurs analysieren und die Aktie zum Zeitpunkt des Kaufs finden, also habe ich versucht, von der Nikkei-Zeitungsseite zu kratzen. Es gibt verschiedene Websites, die kostenlose Aktienkurse anbieten, z. B. Stock Investment Memo, die jedoch häufig unregelmäßig aktualisiert werden. Die Nikkei Shimbun-Website wird täglich aktualisiert.
Wenn Sie beim Scrapen einer Website nicht verschiedene [Regeln] befolgen (https://qiita.com/nezuq/items/c5e827e1827e7cb29011), ist dies zunächst ein Verbrechen, aber Nikkei Shimbuns [robots.txt]( Soweit https://www.nikkei.com/robots.txt) und Nutzungsbedingungen gesehen werden, scheint es im Rahmen des persönlichen Gebrauchs kein Problem zu geben (? ) ist. (Bitte lassen Sie mich wissen, wenn es nicht funktioniert)
Wenn Sie die Methode read_html () des Moduls pandas verwenden, dauert dies Sekunden.
nikkei_scrape.py
import pandas as pd
def get_stock_prices(stock_number):
url = "https://www.nikkei.com/nkd/company/history/dprice/?scode={}&ba=1".format(stock_number)
headers = {
"User-Agent": "User-Agenteninformationen"
}
dfs = pd.read_html(url)
for i in range(len(dfs)):
if "Datum" in str(dfs[i]):
return dfs[i]
return False
Benutzer-Agent-Informationen sind in Ordnung, wenn Sie die Zeichenfolge kopieren und einfügen, die beim Öffnen von [dieser Site] angezeigt wird (https://www.cloudgate.jp/ua.php). In meinem Fall war es beispielsweise "Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 81.0.4044.122 Safari / 537.36". Weitere Informationen finden Sie hier [https://qiita.com/nightyknite/items/b2590a69f2e0135756dc].
Geben Sie den 4-stelligen Bestandscode in "stock_number" ein. Wenn Sie beispielsweise 1301 eingeben, ist dies die URL der Aktienseite der Firma Gokuyo [https://www.nikkei.com/nkd/company/history/dprice/?scode=1301&ba=1](https: //www.nikkei). Scraping com / nkd / company / history / dprice /? Scode = 1301 & ba = 1). Sie finden den Markencode leicht über Google und auf der TSE-Website. Sie können die EXCEL-Datei herunterladen.
Es kann eine zusätzliche Tabelle auf der Aktienkurs-Webseite geben. Um nur die Aktienkurs-Tabelle zu erhalten, drehe ich die for-Anweisung so, dass nur die Tabelle zurückgegeben wird, die das Wort "Datum" enthält.
das ist alles.
Recommended Posts