丹生屋★海外投資通信簿

米国株を中心に投資してるDiary

口座やマネーサービスの残高を自動取得するプログラム開発 (8)

f:id:nibunoya:20210117101728p:plain

 

今回は、取得するサイトを増やすことにしました。

 

会社の確定拠出年金のサイトは、うまく取得できませんでしたが、フレームを使っていることが分かり、そのフレームに移動して取得したら、できました。

 

SBI証券でつまづきました。

Tableでレイアウトしてあり、楽勝だと思ったのですが、まずは必要なデータがある場所を特定するのに時間がかかりました。

よくxpathで位置を特定するのですが、今回のtableにidやname、classなどは設定されておらず、beautifulsoupだとxpath指定はできないみたいなので(多少テクがいるみたい)、htmlをよく解析することに・・・。

次に引っかかったのは、tdの中で<BR>で改行してあり、「取得額<BR>現在額」になっています。

pd.read_htmlで読むと、<BR>がとれて、文字列で、取得額現在額、と文字列的に連結されています。

いったん文字列をスライスして、数値に変換したのですが、「SettingWithCopyWarning」エラーが出ます。

プログラムが止まることはなく、正常にデータは取得できているようなのですが、エラーが気持ち悪いので、直そうとしました。

2時間粘ってもだめだったので、もうこのまま行きます。

 

エラーは出ますが、動くプログラムができました。

記録したいエクセルの改善や、プログラムの他の調整もほぼ終わってきて、最終段階です。

 

現在、12サービスから取得して、自動取得部分で合計約53秒、エクセルへの転記がプラス5分くらいで終わります。

並行処理をせず直列処理した場合、自動取得部分で合計約272秒かかります。

従来の手法だと、15分オーバーだったので、10分くらい時短の状態です。

 

次やりたいこと

  • ID/パスワードのセキュリティ