検索
特集

付加価値コンテンツとは――スクレイピングからグラフ化までまとめサイト2.0(1/5 ページ)

HTMLを解析し、スクレイピングしたデータを基にグラフ化を行う。遷移を把握するために有効なものとして、さまざまな応用が考えられるだろう。

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

この記事は、オンライン・ムックPlus「まとめサイト2.0」の一部です。関連する記事は、こちらでご覧になれます。


 前回までの記事で、オルタナティブ・ブログを例とした過去ランキングの「期間」を抜き出すスクレイピングについて解説した。

 今回の記事では、スクレイピングの最終目的となる「各週の1位から10位のタイトルとURL」を配列として抜き出す手法、そしてグラフ化を行う手順までを見てみよう。

 1位から10位のタイトル、そしてURLを抜き出すスクレイピングには、幾つかの手法が考えられる。例えばリスト2のように記述することが可能だ。

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

 リスト2では、$scrape_rankingと$scrape_termという2つのscraperブロックを定義している点に注目しよう。scrapeメソッドを呼び出しているのは、$scrape_termのほうだ。

 このscraperブロックでは、次のように宣言している。

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

 1行目は、「id属性がpostrankingであるdiv要素の配下にある、class属性がrankingdataであるdiv要素」のテキストをterm[]に入れる処理であり、これにより、過去ランキングの「期間」がとれる。これはすでに説明した通りだ。

 2行目は、「id属性がpostrankingであるdiv要素の配下にある、class属性がrankingdataであるdiv要素」が見つかったら、$scrape_rankingの結果をranking[]に入れるという処理を指定している。

 この$scrape_rankingは、次のように指定した別のscraperブロックである。

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

 このように別のscraperブロックを指定すると、Web::Scraperは、見つかった部分を、そのscraperブロックへと引き渡し、ネスト処理するようになっている。

 上記の$scrape_rankingでは、span要素の配下にあるa要素が見つかったとき、そのhref属性をlink[]へ、テキストをtitle[]へ設定しており、これにより、それぞれのランキングの「リンク」と「タイトル」を入れることができる。

 リスト2の結果をYAMLでダンプすると、例えば次のページのようになる。

       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る