検索
特集

スクレイピングで記事ランキングのグラフ化まとめサイト2.0(3/5 ページ)

「オルタナティブ・ブログ」で公開されている週間アクセスランキングを基に、その結果をグラフ化してみよう。定期的なデータ取得と解析で、新たなコンテンツを作り出すことができる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

Web::Scraperでスクレイピングする

 HTMLから、どのようなデータを抜き出さなければならないのかが分かったところで、Web::Scraperを使って、実際にスクレイピングしてみよう。

 Web::Scraperは、「定型的な使い方の書式」さえ理解すれば、すぐにスクレイピング処理ができる便利なモジュールだ。この書式は、あれこれ説明するよりも、実際に動くソースを見てもらったほうが早い。

 まずはWeb::Scraperで、週間ランキングから、「ランキング期間」だけを取り出す例を見てみよう(それぞれのランキング順位を取得する方法は、やや複雑なので、後述する)。ランキング期間の取得条件は、すでに説明したように次の通りだ。

  • <div id="postranging>の配下にある
  • <div class="rankingdata">内のテキスト

 この条件を満たすものをスクレイピングするのが、リスト1だ。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 リスト1のプログラムを実行すると、その結果は、次のようになる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 リスト1では、変数の値に入っているデータをダンプするため、YAMLモジュールを用いているが、これは必須ではない。実際のデータは、リファレンスとなっており、次のようにして値を取り出すことができる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ちなみに、「YAML」は人間が読みやすいようにインデントを使って表現したデータ構造書式だ。詳細については、http://www.yaml.org/を参照してほしい。

スクレイピング条件の指定

 Web::Scraperの基本的な使い方は、次のようになる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記に示したように、「use Web::Scraper;」とすると、「scraperブロック」を定義できるようになる。scraperブロックでは、以下の2つを設定する。

1)抜き出す条件を決めるprocess行(複数可)

2)最終的な結果を設定するresult行

 この2つの行の設定方法を、順に見ていこう。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る