LoginSignup
1
0

More than 5 years have passed since last update.

第10回AKB48世界選抜総選挙のデータをスクレイピングしてみました!

Last updated at Posted at 2018-07-24

毎年6月になるとAKB48の総選挙で盛り上がりを見せています。2018年もやってきました。6月16日、「第10回AKB48世界選抜総選挙」(別名:AKB48 53rdシングル 世界選抜総選挙 ~世界のセンターは誰だ?~)の開票イベントが、愛知・ナゴヤドームにて開催されました。総投票数は3836652票だそうで、松井珠理奈さんが194453票で1位の座を獲得しました。

今年は100位まで発表され、みんなそれぞれの情報を了解したいので、この度Octoparseというスクレイピングツールを使って、メンバーのデータを一気に取得しています。(Octoparseをダウンロード

Octoparseでは、様々なデータ抽出方法があるのですが、今回は「リスト状となっているコンテンツからデータを抽出する」と「リストから詳細ページへ行ってデータを抽出する」の2種類の方法を全部使って紹介したいと思います。

さて、始めましょう!

ステップ1:Octoparseでスクレイピングするサイトを開く

Octoparseには、ウィザード形式で手軽に行える「Wizard mode」と、自由度高い「Advanced mode」がありますが、今回は「Advanced mode」を利用してみます。

サイト:https://www.akb48.co.jp/sousenkyo53rd を入力し、下部にある「Save URL」をクリックして、最初のステップを完了しました!
Octoparseでスクレイピングするサイトを開く.jpg

ちなみに、インターフェイスの右上にある「ワークフロー」ボタンを開くと、タスクの実行順番を確認できます。
「ワークフロー」ボタン.jpg

次のようになります。
「ワークフロー」.jpg

ステップ2:Webクローラーを定義する

すべての情報を読み込んだ後、スクレイピングするデータを指定します。

1.まず、各アイテムを全体として、クリックします。「Action Tips」パネルには選択結果を提示します。
各アイテムを全体として、クリックする.jpg

アイテムが16しか選択されません。ですから、100件になるまで選択されていないアイテムをクリックします。

「Action Tips」パネル.jpg

2.「Loop click each element」をクリックした後、詳細ページに入ります。そうすると、スクレイピングするデータを指定します。
スクレイピングするデータを指定する.jpg

データを取得しました。データフィールドの下にあるツールはデータを再フォーマットできます。
データを再フォーマット.jpg

3.タスクを正しく行うために、「Loop Item」の「Variable List」を修正する必要があります。以下のXpathを入力します。

//DIV[@class="quickAnnouncementList"]/UL/LI/A
Xpathを入力する.jpg

4.詳細ページには得票数がないから、アイテムページで取得しかありません。ワークフローでは、「Extract data」のアイコン「Extract data」のアイコン.jpgを「Loop Item」に引きずって、「Click Item」の上に置きます。
「Extract data」を「Click Item」の上に置く.jpg

それから、アイテムから得票数をクリックして、「Extract text of the selectedelement」を選択します。
得票数をクリックする.jpg

ステップ3:クローラーを行い、データを抽出する

「Save」をクリックして、クローラーの設定を保存します。それから、「Start Extraction」をクリック、クローラーを行い、以下のようにデータを取得しました!CSV、Excelなどの形式で出力できます。
データを取得.jpg

いかがでしたか?簡単にデータを取得できますね!皆さんもお試してみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0