Laden Sie japanische Aktienkursdaten mit Python herunter

Summary

Ich habe ein Skript geschrieben, um Aktieninformationen von Stock Investment Memo herunterzuladen, ohne zu kratzen.

wie benutzt man

python ./stockDownload.py -c 7203

Die täglichen Daten für 2019 von 7203 Toyota Motor Co., Ltd. können mit csv heruntergeladen werden. Wenn der Download erfolgreich ist, wird "Code: 7203 Download beendet" zurückgegeben. Wenn dies fehlschlägt, wird "Code: ungültig" zurückgegeben.

Motivation

Das Verschrotten von Yahoo! Finanzen ist verboten. Die Methode zum Scrapen von Bestandsinformationen aus Stock Investment Memo wurde bekannt gegeben [^ 1], das Format kann jedoch geändert werden und das Parsen funktioniert möglicherweise nicht. Auf der anderen Seite gibt es einen Download-Button auf der Seite, also habe ich untersucht, ob er gut verwendet werden kann.

Wie der Download erfolgt

Nachdem ich auf die Download-Schaltfläche geklickt hatte, analysierte ich sie auf der Registerkarte "Netzwerk" des Google Developer Tools. Es scheint, dass Daten an "https: // kabuoji3.com / stock / file.php" gesendet werden.

kabuoji3_POST_edit.png

Teile, die angepasst werden müssen

Skript

{stockDownload.py}


#!/usr/bin/env python

import requests
import re
import click
from time import sleep

@click.command()
@click.option("--code", "-c", "code", required=True,
        help="Stock code to download.")
def main(code):
    year = "2019"
    session = requests.Session()
    headers = {
                "User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"
                }
    data = {
            "code":code,
            "year":year,
            "csv":""
            }
    url = "https://kabuoji3.com/stock/file.php"
    res = session.post(url, data=data, headers=headers)
    try:
        contentDisposition = res.headers['Content-Disposition']
        fileName = re.findall(r'\"(.+?)\"', contentDisposition)[0]
        fullName = ~/Documents/projects/ipo/data/stock/{}".format(fileName)
        with open(fullName, "wb") as saveFile:
                saveFile.write(res.content)
        print("Code: {} download finished.".format(code))
    except KeyError:
        print("Code: {} not valid.".format(code))
    sleep(3)

if __name__ == '__main__':
    main()

Gefühle

Ich habe zum ersten Mal eine Kli mit Klick erstellt. Ich denke, es ist einfacher zu lesen als sys.argv. Alles, was Sie tun müssen, ist, den cat code | der Shell zu verwenden, während Sie die Zeile lesen: do python ./stockDownload.py -c $ line; done. Da es cp932-codiert ist, muss es als nkf konvertiert werden.

Referenzmaterial

[Python] Pseudo-Klick auf eine Schaltfläche mit Anfragen How to Write Python Command-Line Interfaces like a Pro

[^ 1]: [Python] Aktienkursdaten durch Scraping abrufen [^ 2]: [Python] Was tun, wenn Sie auf diesem Server keine Zugriffsberechtigung haben?

Recommended Posts

Laden Sie japanische Aktienkursdaten mit Python herunter
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Holen Sie sich Lager mit Python
Generieren Sie japanische Testdaten mit Python faker
Datenanalyse mit Python
Automatische Erfassung von Aktienkursdaten mit Docker-Compose
Web Scraping mit Python (Aktienkurs)
Mit Python erstellte Beispieldaten
Holen Sie sich Youtube-Daten mit Python
Bei der Erfassung von Aktienkursdaten mit Pandas-datareader fehlen Daten
Aktienkursprognose mit Tensorflow
Japanische morphologische Analyse mit Python
Python: Aktienkursprognose Teil 2
[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
Tipps zur Erfassung von Aktienkursdaten
Laden Sie die CSV-Datei mit Python herunter
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Python: Aktienkursprognose Teil 1
Lesen von JSON-Daten mit Python
"Abrufen von Zeitreihendaten von k-db.com mit Python" Memo zur Erstellung der Programmumgebung
Programmierhistorie 1 Monat NY Dow-Bestand mit Python extrahieren!
[Aktienkursanalyse] Pandas lernen mit fiktiven Daten (002: Protokollausgabe)
Holen Sie sich japanische Aktieninformationen von Yahoo Finance mit Pandas
Implementierter Dateidownload mit Python + Bottle
[Python] Mit DataReader Wirtschaftsdaten abrufen
[Python] Meine Aktienkursprognose [HFT]
Python-Datenstruktur mit Chemoinfomatik gelernt
Sprechen Sie japanischen Text mit OpenJTalk + Python
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
Verarbeiten Sie Pubmed .xml-Daten mit Python
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Anwendung von Python: Datenbereinigung Teil 2: Datenbereinigung mit DataFrame
[Aktienkursanalyse] Pandas lernen mit fiktiven Daten (001: Vorbereitung der Umgebung auf das Lesen von Dateien)
Laden Sie Python herunter
[Aktienkursanalyse] Pandas mit fiktiven Daten lernen (003: Von der Typanordnung zum Candlestick-Chart)
[In-Database Python Analysis Tutorial mit SQL Server 2017] Schritt 1: Laden Sie Beispieldaten herunter
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Datenpipeline-Aufbau mit Python und Luigi
[Hinweis] Mit Python Daten von PostgreSQL abrufen
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Holen Sie sich Lebensmitteldaten mit Amazon API (Python)
HTTP Split Download Typ mit Python gemacht
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Konvertieren Sie Excel-Daten mit Python in JSON
Hinweise zur japanischen OCR mit Python
Überprüfen Sie die Aktienkurse mit Slackbot mit Python
Bearbeiten von DynamoDB-Daten mit Lambda (Node & Python)
So zeigen Sie Python-Japanisch mit Lolipop an
Laden Sie mit Python Dateien im Web herunter
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
Aktienprognose mit TensorFlow (LSTM) ~ Aktienprognose Teil 1 ~
[Python] Erstellen eines Aktien-Drawdown-Diagramms
Empfehlung von Altair! Datenvisualisierung mit Python
Datenanalyse beginnend mit Python (Datenvorverarbeitung - maschinelles Lernen)
Lassen Sie uns MySQL-Daten mit Python bearbeiten
Wie man mit Python-Flüchen Japanisch eingibt