今回は、巷で流行りのプログラミング言語であるPythonの勉強として、Pythonを利用して株価を取得するコードを作成しました。日本株をQuandlから取得する取得する情報は、日付と終値とする取得した情報はcsvファイルに出力することQuandlについてQuandlは、世界の金融情報や統計情報をまとめているサイトです。professionals.www.quandl.com大きな特徴として、各種情報を取得するためのPythonやRubyのAPIを提供しており、しかもかなりの部分を無料で使用することができます。日本の金融関係のサービスではAPIを提供しているものは少なく、あったとしても有料であることがほとんどです。Quandlで取得できる情報の大部分は外国株式や海外の統計情報ですが、実は日本株も取得する事ができます。東証がデータを提供していて、API経由で東証のデータ(日経平均や各種日本株式)を取得できます。QuandlからAPI経由でデータを取得する前準備として、APIキーを発行する必要があります。設計・実装したコード「get_stock.py」を掲載します。(美しくない一本ソースで申し訳ありません。main()本ソースは大きく分けて2つの要素で成り立っています。〜36行目まで:Quandlを用いて株価を取得する役割をもつStockクラスとその関連クラス39行目〜:Stockクラスを使い、得た株価をcsvに出力するmain文8~10行目:Stockクラスは、Quandlの株価コードを引数にインスタンスを生成します。pythonにおいては、クラスのコンストラクタはinitで定義します。codeself.(メンバ変数名)でクラスのメンバ変数を定義します。Stockクラスでは、株価コードをcodeというメンバ変数に代入しています。12行目:Stockクラスのメンバ関数としてGetというメンバ関数を定義します。引数として、取得する株価の期間(取得開始日時と終了日時)の文字列、およびAPIキーを受け取ります。文字列として受け取った日時を、pythonのdatetime型に変換quandlのAPIをコール日付と終値の抽出を行っています。このうち、日付と終値の抽出に関しては、Stockクラスを継承したサブクラスであるTseStockを定義し、そこで実装しています。デザインパターンにおけるテンプレートメソッドパターンに相当します。29行目:StockクラスのサブクラスであるTseStockクラスの実装です。メンバ関数Shapeを作成し、オーバーライドしています。values)今回取得する東証提供の株価において、終値は「Close」キーに格納されています。Shape関数では日付と終値をindexとCloseキーから抽出しています。39行目以降は、Stockクラスらを実際に使用するmain文となります。コマンドライン引数を取得して各種変数に代入します。api_key)コマンドライン引数は、sysライブラリのargvから取得します。引数の種類は以下としています。APIコードこのうち、Quandlの株価コードが記述されたcsvファイルについて、例として次のようなものを用意します(codelist.csv)。今回は、トヨタ自動車(TSE/7203)、みずほフィナンシャルグループ(TSE/8411)、ソフトバンクグループ(TSE/9984)を取得することとします。TSETSE/7203TSE/8411TSE/9984コマンドライン引数取得後、実際の株取得・データ出力の処理を行います。f.close()50~59行目:引数で取得した株価コードのファイルから株価コードを読み出し、それぞれTseStockクラスのインスタンスを作成してGet関数で日付と終値を取得します。ファイル読み出し時には、一行目をDataFrameのヘッダとして読み出します。今回は、ヘッダに「TSE」がある列は、TseStockクラスを使用する、というコードを記述しています。61〜67行目:取得した日付と終値は、csvファイルとして出力します。以下のように実行ください。Your-API-Key標準出力に各種情報が出たあと、該当する株価情報が記されたファイルが出力されるはずです。ls(中略)code_TSE-7203_2010-04-30_2015-05-30.csvcode_TSE-8411_2010-04-30_2015-05-30.csvcode_TSE-9984_2010-04-30_2015-05-30.csv終わりに今回はPythonを用いて、Quandlから東証の株式情報を取得しました。Quandlには、他にも統計情報(世界の人口等)や外国株式の情報を取得する機能が備わっています。データソースによってデータの整形方法を変えなければならないため注意が必要です。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。CIを使ってみたかったのでメモ。...PyQueryを使用し株式会社の決算速報をスクレイピング今回はpythonを利用したスクレイピングの練習として、PyQueryを利用したスクレイピングを行うコードを作成しました。...pythonで有価証券報告書(XBRL形式)をパースする今年最後の更新になります。pythonを使用して、株式会社の財務情報をパースするコードを作成しました。詳しい情報、およびこれらを削除またはブロックする方法については、以下をご覧ください。