Webスクレイビングして株価を取得する
Pythonを勉強中。
今日はk-dbのサイトから指定した銘柄の最新250日分の株価情報を取得し、テキストファイルに書き込むコードを書いてみた。
いわゆるWebスクレイビングというやつ。
ここではソフトバンクの株価情報を取得している。
def get_kabu(nm="9984"): import requests, bs4 source = requests.get("http://k-db.com/stocks/{}-T".format(nm)) file = open("{}_k_data.txt".format(nm),"w") file.write("") file.close() soup = bs4.BeautifulSoup(source.text, "html.parser") for i in soup.findAll("td"): file = open("{}_k_data.txt".format(nm),"a") kabu_data = str(i.string)+"\n" file.write(kabu_data) file.flush() file.close() get_kabu()
なんとか、うまく動いてくれた。
以下、復習がてらざっくりとそれぞれの部分を振り返ってみる。
①まずは関数の引数として渡した銘柄番号を使ってk-db.comにアクセス。
source = requests.get("http://k-db.com/stocks/{}-T".format(nm))
②以下で取得した情報を書き込むテキストファイルを準備。
file = open("{}_k_data.txt".format(nm),"w") file.write("") file.close()
③次にBeautifulSoupを使って、"td"タグ内の文字列を取得し、kabu_dataという変数に代入。これをソースの"td"タグ分繰り返す。
soup = bs4.BeautifulSoup(source.text, "html.parser") for i in soup.findAll("td"): file = open("{}_k_data.txt".format(nm),"a") kabu_data = str(i.string)+"\n"
④また、"td"タグ分、準備していたテキストファイルに書き込む動作を繰り返す。
file.write(kabu_data) file.flush()
以上。
次はデータ分析などで使えるような形で取得するコードを書いてみたい。
といっても、まだデータ分析に使うためのモジュールの使い方もわかっていないので、まずはその勉強からかな。