Python

Pythonで自動化してみよう! ~楽天ポイントの明細をスクレイピングでダウンロードしてみる~

こちらの記事は次のようなことを知りたいという方に向けて書いています。

  • pythonを使ってみたいけど、何から手をつければいいかわからない!
  • pythonの自動化の例を見てみたい!
  • 楽天ポイントの明細の履歴をcsvダウンロードしたいけどpythonでできないかな?
まっすーです。中小企業診断士試験他多くの資格に、短期間で高得点で合格した実績をベースに数々の資格試験の合格アドバイスをしています。また、ITと会計に関する知識を元にしたコンサルティングが可能です。
今回は、python初心者に向けたスクレイピングのやり方を、楽天ポイントの明細のダウンロードを例にして説明しますね。

pyhtonスクレイピングの基礎知識

pythonの特徴と簡単にできること

pythonの特徴については、下記リンクで説明していますのでこちらもご参照ください。

パソコン初心者がPythonを使用する方法をやさしく解説!できることを理解して簡単セットアップでプログラムを作り始めようPythonって何?何ができるの?Pythonに興味があるけど使い方がわからない!どうやって使えばいいの?PythonをWindowsで使えるようにしたい!といった疑問に回答します。...

簡単にまとめますと、

pythonの特徴
  • シンプルで覚えることが少ない構文になっている
  • 1行で多くの処理を記述することができる
  • 標準ライブラリとして、多くの機能があらかじめ用意されており便利に使える
  • 幅広い用途に使えるPython向け外部ライブラリが豊富に存在する
pythonで簡単にできること
  • 自動でのデータ処理や分析をおこなうなどの業務効率化
  • スクレイピングによるWeb上のデータの自動収集

ということになります。

pythonでスクレイピングなど、プログラムのコードを書いていく場合、デバッグなどの作業には仮想環境を使用することをオススメしています。

こちらのリンクで説明しています。

Python仮想環境おすすめ3選を紹介!初心者にもわかりやすくvenv・conda・virtualenvを説明しますこの記事ではPythonの仮想環境というのがあると聞いたんだけど何のこと?Pythonをインストールして、環境変数PATHの設定も終わったけど、すぐにプログラムを書き始めていいの?といった質問に回答しています。...

スクレイピングの基本

スクレイピングとは、簡単に言うと、プログラムを活用してインターネットのWebサイトの情報を取ってくる、と考えていいと思います。

手順としては以下のとおりになります。

  1. 取得したい情報を保有しているWebサイトを特定する
  2. 対象のWebサイトのHTMLデータをクローラによって取得し、そのデータから必要な情報だけをスクレイピングしてサーバに保存する
  3. 保存したデータを整理、解析して、目的に合ったデータベースを作成する
  4. 作成したデータベースを活用する

なお、pythonでスクレイピングをおこなう場合、絶対に気をつけなければならないことがあります。

下記の記事でも説明していますが、接続先のサーバーに必要以上の負荷をかけることだけは絶対にしないでください。基本的には、自分がリンクをクリックしていくのと同じくらいのスピードで考えておいたほうがいいです。

私が公開するコードは、必要以上にウェイト時間を設定していますのでそのまま使っていただく分には問題ないと考えますが、コードを編集する場合は、必ずウェイト時間を設定するようにしてください。

Pythonを利用したスクレイピングで犯罪になることがある?スクレイピングをするときの注意!この記事ではPythonでスクレイピングをしたいけど、気をつけることは?スクレイピングで捕まった人がいるって聞いたけど、悪いことなの?そもそもスクレイピングってなに?といった疑問に回答しています。...

ただ、ウェイト時間がある程度長くても、放っておけば自動的にデータを落としてくれるわけですからあまり気にすることはないと思いますよ。

pythonプログラムの構築

要件の確認

pythonでスクレイピングをおこなう場合、基本的に自分がWebサイトを閲覧するのと同じようにしていきます。

今回トライするのは楽天ポイントクラブのポイント実績からリストをダウンロードして、csvファイルに保存します。

クレジットカードの利用明細や、銀行の入出金明細ならばcsvダウンロードができるのが当然のようになっていますが、そうではない場合、pythonなどでスクレイピングできると便利です。

楽天ポイント明細は以下のように表示されています。

これをデータとして保存するには、通常であればこうやって、範囲指定してコピー→Excelなどにペースト、としますが大量にある場合はなかなか面倒です。

これを自動でできるように、今回は以下の要件を満たすようにしましょう。

要件

楽天ポイント明細で表示されている内容をcsvファイルに自動で保存する

手順の確認

pythonでプログラムを書いていくに当たり、実行手順を確認します。
とは言っても、今回の明細ダウンロードはそれほど複雑ではありません。

  1. 楽天ポイントクラブのURLにアクセスする
  2. IDとパスワードを入力して、サインインする
  3. 1ページ目の画面でデータをダウンロードする
  4. 2ページ目に移動する。そこでもデータをダウンロードする
  5. 最後のページまで終わったら、csvファイルにデータを書き出して保存する

Webサイトをスクレイピングするに当たり、ChromeDriverを使用します。
このChromeDriverの使用方法については、別記事で書いていますのでそちらをご参照ください。

pythonプログラムの実行

pythonプログラムの公開

こちらが今回の楽天ポイント明細のスクレイピングのpythonコードです。
IDとパスワードを入力すれば、すぐに使えると思います。

ポイント利用と獲得をプラスマイナスで表示するために二回コードを書いていて、もっと効率化はできるのでしょうけど、今回はそのままにしています。

pythonプログラムの実行

pythonプログラムの実行は、以下の手順でおこないます。

  1. 上記のプログラムをコピーして、scraping_rakuten_point.py(ファイル名はご自由におつけください)として保存する
  2. コマンドプロンプトからpython仮想環境に入る
  3. scraping_rakuten_point.pyを実行する

コマンドプロンプトからpython仮想環境に入り、プログラムを実行します。

ChromeDriverが立ち上がり、ユーザIDとパスワードが自動で入力され、ログインボタンが押されます。

コマンドプロンプト側では、進行中のメッセージが出ています。

プログラムが終了すると、ChromeDriverも自動で終了します。
放っておいても大丈夫ですね。

プログラムの入っているフォルダの下のcsvというフォルダの中に、rakuten_point.csvというファイルが保存されています。

結果の確認

csvファイルを開いて、内容を確認します。
Webサイトで確認するよりも、Excelでデータを確認できると、分析にも利用できそうですね。

ちなみに楽天ポイントはいろいろなキャンペーンをやっている一方で、本当に獲得できているかわからないとか、期限が非常に短くて期限切れでポイントを失ってしまうといったケースがよく聞かれますので、確認はシておいたほうがいいと思います。

スクレイピングは便利に使えば自動でデータを取得して、それを分析に使用することができます。

今回は楽天ポイント明細という、利用者が限られるような内容ですが、いろいろな自動化を私のブログで紹介していければいいなと思います。

ここまでお読みいただきましてありがとうございました。

ABOUT ME
まっすー
中小企業診断士のまっすーです。 社会保険労務士やITストラテジストなど、多くの難関資格に合格した実績をベースとした資格試験の学習方法、ExcelマクロやPythonを活用した自動化の推進、経営に役立つ管理会計の理論解説、ITを活用した経営資源の有効活用などの情報を発信しています。
関連記事 Releated post

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA