茨城県つくば市でモバイルアプリ(iPhone、Android)のプログラミングをする日記です。あとWordPress、Raspberry Pi、Arduinoなど。

モバイルプログラミング@つくば

Kickstarterをスクレイピングしてプロジェクトの進捗を調べる

投稿日:2016年1月9日 更新日:

本記事では、Python 2.7を使っています。
執筆から時間が経っており、情報が古い可能性があります。

こんにちは、okuzawatsです。
Pythonでスクレイピングする練習をしています。

今回は、Kickstarterのプロジェクトページをスクレイピングして、資金調達の進捗を調べてみます。

スクレイピングに使うツールは、いつもと同じ、PythonとBeautiful Soupです。

  • Python(2.7.5)
  • Beautiful Soup(4.4.0)

Beautiful Soupの詳しい使い方については、公式ドキュメントを参照してください。

Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation

今回は、日本の会社が関わっている「niXaX」という製品のプロジェクトページのスクレイピングを行います。

niXaX - Special Gadget for Steak Lovers! by Joel Berger, Yoshiharu Cutlery Co., Ltd. — Kickstarter

niXaX

Kickstarterの各プロジェクトページには、上の図の黄色で囲んだ部分のように、プロジェクトの進捗を示している場所があります。ここから金額を抽出して、プロジェクトの進捗を調べます。

該当部分のソースコードを抜き出すと、こんな感じになっています。

ソースコードを良く見ると、div class="num h1 bold nowrap"の中にdata-goal="8000.0" 、data-percent-raised="0.817625"、およびdata-pledged="6541.0"という使えそうな属性が入っていることがわかります。
この3つの属性値を取得してあげれば良さそうです。

Beautiful Soupのfindメソッドを使って"num h1 bold nowrap"クラスを取り出し、さらにgetメソッドでそれぞれの属性値を抽出します。

こんな感じのコードでできます。

以下の箇所は、抽出した値がfloat型であることの確認、および文字列のfloat型へのキャストを行っています。
数字はfloat型で持っておきたいです。

今回は、必要なデータがソースコード内に整備されていたので、比較的容易にスクレイピングできました。

Kickstarterをスクレイピングしてプロジェクトの進捗を調べるスクリプト on GitHub

Kickstarterをスクレイピングしてプロジェクトの進捗を調べるスクリプトをGitHub上で公開しています。

Kickstarterをスクレイピングしてプロジェクトの進捗を調べるスクリプト on GitHub

あわせて読みたい本

-Python

Copyright© モバイルプログラミング@つくば , 2017 AllRights Reserved Powered by AFFINGER4.