初めまして、Kayです。
投資をやっていまして、今年の1月からPythonにフロンティアを感じ、投資に応用出来ないかということで、ようやくYahooファイナンスの株価の抽出くらいまでたどり着きました。
というわけで、プログラミング歴は1ヶ月です(笑)
github↓
https://github.com/Kay-Hatsune/NY-Dow/blob/master/dow.py
#使用したもの
言語:Python3
ライブラリ:urllib、BeautifulSoup
MacBook Pro
#BeautifulSoupをインストールする
$ pip3 install beautifulsoup
自分の場合、MacOSだったので、pip3インストールとなりました。windowsの人は違うと思うので注意してください。
#Pythonのコード
import urllib.request
import ssl
from bs4 import BeautifulSoup
url = "https://finance.yahoo.co.jp/quote/%5EDJI"
ssl._create_default_https_context = ssl._create_unverified_context
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html, "html.parser")
p = soup.find_all("p")
dow = ""
for tag in p:
try:
string_ = tag.get("class").pop(0)
if string_ in "wlbmIy9W":
dow = tag.string
break
except:
pass
print(dow)
BeautifulSoupでYahooファイナンスからurlを引っ張ってきます。
↓
株価がpというところに入っているのでhtmlデータの中のpを検索します。
↓
pの中のclass="wlbmIy9W"の場所を特定するようにfor文とtry except文で構築する。
ちなみに、サイトを右クリックで検証を押すと、簡単に抽出箇所を特定できます。
#Python3ではSSL証明書が必要になるのが注意点
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
Python3ではこのコードを書き込む必要があります。
書かないと必ずエラーになります。
もしかしたらPython2では必要ないかもしれません。
#抽出完了
$ python dow.py
>>>28,399.81
ようやく抽出完了です。5時間もかかりました(笑)
今後はもっと発展させていきたいですね。
#参考にさせていただいた記事
こちらの方がもっと発展したコードを書いているので必読です!