前回の記事
前回に引き続き、クレジットカードの利用明細のダウンロードをしていきます。
前回は、UIテスト自動化ツールのSeleniumuとChrome Driverをインストールして、ドコモのクレジットカードであるdカードの利用明細をダウンロードするところまでやりました。
バージョン情報
PCはmacOS Mojave(10.14.6)
- selenium: 3.141.0
- chrome: 76.0
- ChromeDriver: 76.0
- Python 3.7.3
楽天カードの利用明細をダウンロードする
今回は、楽天カードの利用明細を引き続きPythonを使ってダウンロードしていきます。
今回は利用明細のダウンロードにrequests
モジュールを使用するため、ターミナルを開いて下記のコマンドを実行する必要があります。
$ pip install requests
続いて、Chromeを自動操縦して楽天カードの利用明細をダウンロードするPythonのコードを書きます。
前回同様、楽天カードサイトのユーザIDとパスワードはrakuten_credentials.py
ファイルに別途定義しています。
苦労した点
<a href="XX" class="stmt-c-btn-dl stmt-csv-btn">
利用明細のCSVリンクを取得する時に、CSSのクラス名からアンカータグのDOMを取得しようとしましたが、複数のclassが設定されていたため、どのメソッドで取得できるかがわかりませんでした。
python - Selenium Compound class names not permitted - Stack Overflow
この問題は上記のstackoverflowのサイトで解決しました。CSSのclassが二つ以上ある要素をSeleniumのfind_element_by_class_name
で取得しようとすると失敗しますが、代わりにfind_element_by_css_selector
を使えば取得できます。
tag = driver.find_element_by_css_selector('.stmt-c-btn-dl.stmt-csv-btn')
参考サイト
ゼロからはじめるPython(49) Pythonでブラウザ自動操縦してカード明細を自動でダウンロードしよう(その1) | マイナビニュース
ゼロからはじめるPython(50) Pythonでブラウザ自動操縦してカード明細を自動でダウンロードしよう(その2) | マイナビニュース