Téléchargez les données de cours des actions japonaises avec Python

Summary

J'ai écrit un script pour télécharger des informations boursières à partir de Stock Investment Memo sans grattage.

comment utiliser

python ./stockDownload.py -c 7203

7203 Les données quotidiennes 2019 de Toyota Motor Co., Ltd.peuvent être téléchargées avec csv. Si le téléchargement réussit, il renvoie Code: 7203 téléchargement terminé., et s'il échoue, il renvoie Code: non valide..

Motivation

Le grattage est interdit depuis Yahoo! Finance. La méthode de récupération des informations boursières de Stock Investment Memo a été divulguée [^ 1], mais le format peut être modifié et l'analyse peut ne pas fonctionner. D'un autre côté, il y a un bouton de téléchargement sur le site, donc je cherchais à savoir s'il pouvait être bien utilisé.

Comment se fait le téléchargement

Après avoir appuyé sur le bouton de téléchargement, je l'ai analysé à partir de l'onglet réseau de l'outil de développement Google. Il semble que les données soient POSTÉES sur https: // kabuoji3.com / stock / file.php.

kabuoji3_POST_edit.png

Pièces nécessitant un ajustement

scénario

{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()

Sentiments

J'ai créé un cli en utilisant Click pour la première fois. Je pense que c'est plus facile à lire que sys.argv. Tout ce que vous avez à faire est d'utiliser le cat code | du shell pendant la ligne de lecture: do python ./stockDownload.py -c $ line; done. Puisqu'il est codé en cp932, il doit être converti en nkf.

Matériel de référence

[Python] Pseudo-clic sur un bouton avec des requêtes How to Write Python Command-Line Interfaces like a Pro

[^ 1]: [Python] Obtenez des données sur le cours de l'action en grattant [^ 2]: [Python] Que faire lorsque vous n'avez pas l'autorisation d'accéder sur ce serveur

Recommended Posts

Téléchargez les données de cours des actions japonaises avec Python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Obtenez des stocks avec Python
Générer des données de test japonais avec Python Faker
Analyse de données avec Python
Acquisition automatique des données de cours des actions avec docker-compose
Web scraping avec Python (cours de l'action)
Exemple de données créées avec python
Obtenez des données Youtube avec python
Il y a un manque de données lors de l'acquisition de données sur le cours des actions avec Pandas-datareader
Prévision du cours de l'action avec tensorflow
Analyse morphologique japonaise avec Python
Python: prévision du cours de l'action, partie 2
[Série chronologique avec plotly] Visualisation dynamique avec plotly [python, cours boursier]
Conseils d'acquisition de données de cours de bourse
Télécharger le fichier csv avec python
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Python: prévision du cours de l'action partie 1
Lire des données json avec python
"Obtenir des données de séries chronologiques de stock à partir de k-db.com avec Python" Mémo de création d'environnement de programme
Historique de programmation 1 mois Extraire le stock NY Dow avec Python!
[Analyse du cours de l'action] pandas apprenant avec des données fictives (002: sortie log)
Obtenez des informations sur les actions japonaises de Yahoo Finance avec Pandas
Téléchargement de fichiers implémenté avec Python + Bottle
[Python] Obtenez des données économiques avec DataReader
[Python] Mes prévisions de cours de bourse [HFT]
Structure de données Python apprise avec la chimioinfomatique
Parlez du texte japonais avec OpenJTalk + python
Visualisez facilement vos données avec Python seaborn.
Traiter les données Pubmed .xml avec python
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
[Analyse du cours de l'action] pandas apprenant avec des données fictives (001: préparation de l'environnement à la lecture de fichiers)
Télécharger Python
[Analyse du cours de l'action] Apprentissage des pandas avec des données fictives (003: De l'arrangement de type au graphique en chandelier)
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 1: Télécharger des exemples de données
Obtenez des données supplémentaires vers LDAP avec python
Construction de pipeline de données avec Python et Luigi
[Note] Obtenir des données de PostgreSQL avec Python
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Obtenez des données alimentaires avec l'API Amazon (Python)
Type de téléchargement de partage HTTP réalisé avec Python
Essayez de travailler avec des données binaires en Python
Convertir des données Excel en JSON avec python
Remarques sur la réalisation de l'OCR japonais avec Python
Vérifiez les cours des actions avec Slackbot en utilisant Python
Manipulation des données DynamoDB avec Lambda (Node et Python)
Convertissez des données FX 1 minute en données 5 minutes avec Python
Comment afficher le japonais python avec lolipop
Télécharger des fichiers sur le Web avec Python
[Python] Rendons matplotlib compatible avec le japonais
Prévision de stock avec TensorFlow (LSTM) ~ Prévision de stock Partie 1 ~
[Python] Création d'un graphique de tirage des actions
Recommandation d'Altair! Visualisation des données avec Python
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Faisons la manipulation des données MySQL avec Python
Comment entrer le japonais avec les malédictions Python