栗’s diary

Python勉強中。トレードに役立つようなTwitter bot開発中。暗号通貨の自動売買もやってみたい。

スクレイピング、JavaScriptを乗り越えて

ETF、ETNのインディカティブNAV(iNAV)を取得しようとしました。JPXのサイトから。

www.tse.idmanagedsolutions.com

ETFのデータを取ってくるだけならPythonスクレイピングで有名なBeautiful Soupすら使う必要ありません。pandas.read_html(url)でデータフレームとして取ってこれます。さすがPandas。

しかし、ETNはそうはいきません。「ETN」のボタンを押して表示されるサイトはETFの時のアドレスと同じです。JavaScriptを実行することでサイトの中身が書き換わる形式です。これをされるとBeautiful Soupだけでは対抗できません。

そこで必要になってくるのが、SeleniumChromeの)WebDriver

使い方なんかはググっていくつか見てもらった方が分かりやすいと思うんで割愛。紹介だけ。面倒くさいんで。

とにかくこの装備でETNのiNAVも無事取得できました。

初めて driver.find_element_by_id('xxx').click() を使った記念ブログ。

 

昨年、PyconJPに行った際にもスクレイピングの発表を聞いて、Selenium以外でもJavaScriptと闘えるって事を知ったんですが、今回思ったことはやっぱりググって出てくる情報量が違う。古参強しです。ビギナーな私はとりあえずこれからもSeleniumJavaScriptと闘っていこうと思います。 

www.youtube.com