ブログ自動投稿目指して試行錯誤するシリーズ
前回はこちら。
このシステム、SBI証券のページから情報を取得するわけなんですが、SBI証券のページは当然更新され続けます。
5/31時点だとこんな感じです。
ちょっと前までは6件くらい並んでたんですが。
まだシステムが全く完成してなくて日々試行錯誤してる状態なのに、取れる情報が日々変わると結構困ってしまいます。
分売予定が一切なくなったら何も情報取れなくてテストすらできないですからね。。。
ということで、開発用にとある日の状態のページをローカルに保存しておいて、そのページをスクレイピング対象とすることで、常に変わらないページを対象として実行できるようにしたいと思います。
まずはHTMLファイルをローカルに保存。
そして保存したページをBeautifulSorpで読みます。
Webサイトであれば↓のようにrequestsを使ってWebサイトのHTML情報を取得し、それをBeautifulSoupに読み込ませますが
#urlStr = "https://www.sbisec.co.jp/ETGate/?_ControlID=WPLETmgR001Control&_DataStoreID=DSWPLETmgR001Control&burl=search_domestic&dir=offfloor%2F&file=domestic_offfloor_01.html&cat1=domestic&cat2=offfloor&getFlg=on"
htmlObj = requests.get(urlStr)
contObj = BeautifulSoup(htmlObj.content, "html.parser")
ローカルに保存しているHTMLは↓のようにhtmlファイルをオープンしたらOKです。
contObj = BeautifulSoup(open('国内株式|SBI証券.html', encoding='shift-jis'), "html.parser")
ローカルのHTMLをスクレイピングすることで、常に変わらないページを対象としてコーディング、テストが行なえます。
また、色んな状況になってるページ(一件も情報が無いとか)を保存しておくと、後々色んなテストにも使えそうですね。
コメント