見出し画像

#1 毎日、株価データのスクレイピングと定期実行を行い、データベースに格納する

★実行フロー

  1. WEBスクレイピングを実行

  2. スクレイピングしたデータをデータベースに書き込む

  3. 完了メールを送信する

PythonでWEBスクレイピング、データベースの書き込み、完了メールの送信までのコードを作成し、そのコードをGCPのCloud FunctionsとCloud Schedulerを使い、クラウド上で毎日定期実行を行うようなことを実現したいと思います。

★実行に必要なツール

・Python
・MySQL
・Google Cloud Platform

★成果物

株探に記載されている上昇銘柄データをスクレイピング

株探


MySQL(データベース)に格納

MySQL Workbench

完了メールを送信する

GCPのCloud FunctionsとCloud Schedulerにて上記の処理を毎日行う。

GCP Image

PS.MYSQLにデータ格納されれば、PowerBIやExcelからデータ取得が可能となりますので、データ可視化の有用性が見出せます。

https://f.hatena.ne.jp/matu_tak/20150916030946

☆PythonとMySQLの構築

PythonとGCPは基本インストールと登録のみとなりますので、下記を参考してインストールしてみてください。GCPは基本無料範囲で賄えると思いますが、今回利用するSQLは利用頻度と容量によって消費クレジットが変わってくるためご注意ください。自動課金の設定はオフにしておけば大丈夫です。

Pythonインストール

GCPの登録

今回はMYSQLを作成しました。

MySQLを選択すると、サービスの選択画面に遷移します。Enterpriseでプリセットはサンドボックス、マシン構成を1vCPUにするとほぼお金がかからない無料クレジットの範囲内で収めることができます。
※PythonコードでDBにアクセスして書き込む要素があるため、エラーが発生する場合は下記の部分を見直すことが必要になります。

各項目については下記のサイトが0から100まで詳しく解説しておりましたのでご参考ください。
https://blog.g-gen.co.jp/entry/cloud-sql-explained#Cloud-SQL-%E3%81%A8%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF


☆MySQLにてテーブル作成

データベースを作成

今回使用するデータベースを作成します。データベース名は任意のものでOKです。

ユーザーの作成

SQL Studioにログインするためにユーザーアカウントを追加します。

Cloud SQL Studioにログイン

high-priceというデータベースを作成し、ユーザーはadminという名前のものを作成しましたので、これでログインしてみます。
このSQL StudioにSQLの実行などができます。

ただ、私はGUIベースのほうが良いのでMySQL Workbenchを使用します。

Connection Name: 任意の名前
Hostname: 作成したSQLのパブリックIP
Port: 3306
username: root

下記のSQLコードを実行して、テーブルを作成する。

CREATE TABLE 株式情報 (
    コード BIGINT,
    銘柄名 TEXT,
    市場 TEXT,
    株価 DOUBLE,
    前日比 DOUBLE,
    前日比_1 TEXT,
    出来高 BIGINT,
    PER TEXT,
    PBR DOUBLE,
    利回り TEXT
);

●環境構築完了

一旦、ここまででPythonやGCPの登録が完了したので、実施する環境は整いました。次回より、具体的なPythonのコードやGCPの設定等の記載をしていきます。

その他、Pythonに関する記事も書いているのでぜひご参考ください。


いいなと思ったら応援しよう!