目的
株価解析のために、全銘柄に対して過去約20年分のデータを取得し、
データベースに蓄積する。
#コード
https://github.com/jun6231jp/stocks/blob/master/scraping_stocks.py
Yahooファイナンスからスクレイピングする例である。
サーバ過負荷にならないよう、アクセス間隔をある程度空けている。
仮にサーバエラーとなった場合はリトライするようにしている。
※現在はYahooファイナンスはスクレイピングを禁止しているため、ご参考まで。
#データベース作成
株式コードに対する社名および株価を蓄積するためのデータベースを次のように作成する。
stocks
names
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
prices
+--------+---------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+------------+-------+
| id | int(11) | NO | PRI | 0 | |
| date | date | NO | PRI | 0000-00-00 | |
| open | int(11) | YES | | NULL | |
| high | int(11) | YES | | NULL | |
| low | int(11) | YES | | NULL | |
| close | int(11) | YES | | NULL | |
| volume | int(11) | YES | | NULL | |
| fixed | int(11) | YES | | NULL | |
+--------+---------+------+-----+------------+-------+
#実行結果
社名および各社の株価の日次データを取得できた。
names
+------+--------------------------------------------------------
| id | name
+------+--------------------------------------------------------
| 1301 | (株)極洋
| 1305 | ダイワ 上場投信-トピックス
| 1306 | TOPIX連動型上場投資信託
| 1308 | 上場インデックスファンドTOPIX
| 1309 | 上海株式指数・上証50連動型上場投資信託
.
.
.
prices
+------+------------+------+------+------+-------+--------+-------+
| id | date | open | high | low | close | volume | fixed |
+------+------------+------+------+------+-------+--------+-------+
| 1301 | 2019-05-07 | 2742 | 2786 | 2742 | 2783 | 22200 | 2783 |
| 1301 | 2019-05-08 | 2777 | 2780 | 2745 | 2774 | 23200 | 2774 |
| 1301 | 2019-05-09 | 2762 | 2772 | 2716 | 2722 | 25800 | 2722 |
| 1301 | 2019-05-10 | 2725 | 2740 | 2690 | 2690 | 42900 | 2690 |
| 1301 | 2019-05-13 | 2690 | 2826 | 2656 | 2786 | 75600 | 2786 |
| 1301 | 2019-05-14 | 2712 | 2818 | 2686 | 2810 | 50800 | 2810 |
| 1301 | 2019-05-15 | 2806 | 2824 | 2766 | 2824 | 35500 | 2824 |
| 1301 | 2019-05-16 | 2824 | 2888 | 2811 | 2851 | 55600 | 2851 |
| 1301 | 2019-05-17 | 2852 | 2887 | 2833 | 2884 | 37300 | 2884 |
| 1301 | 2019-05-20 | 2894 | 2908 | 2850 | 2853 | 16000 | 2853 |
| 1301 | 2019-05-21 | 2849 | 2856 | 2808 | 2821 | 26900 | 2821 |
.
.
.