株価の日足をスクレイピングする。
最小単位。 import pandas as pd url = "https://finance.yahoo.co.jp/quote/1400.T/history?from=20000101&to=20220528&timeFrame=d&page=1" df = pd . read_html ( url )[ 0 ] print ( df ) これで1ページ20日分取れる。 ここから銘柄名やページをループしてデータを取得していく。 負荷を最低限にするべく、必ず十分なウェイトを取らなければならない。 スクレイピングする以上、アクセス規制も覚悟する。最悪訴訟も。 import pandas as pd import time df_all = pd . DataFrame () for page in range ( 1 , 4 ): url = "https://finance.yahoo.co.jp/quote/1400.T/history?from=20000101&to=20220528&timeFrame=d&page=" + str ( page ) df = pd . read_html ( url )[ 0 ] df_all = pd . concat ([ df_all , df ]) time . sleep ( 3 ) print ( page ) print ( df_all ) これで3ページ60日分取得。 何日ループするべきか分からないのでBeautifulSoupで何件データあるかを取得する。 最終的にこうなった。 import pandas as pd import time #200ページ*3秒=10分。 #1時間で6銘柄。24時間で144銘柄。 #3600銘柄を取得するには1か月弱。 SAVE_FOLDER = "kabu_data/" def get_data ( url = "https://finance.yahoo.co.jp/quote/1400.T/history?from=20000101&to=202205