Chrome拡張「Scraper」でWEBページ情報を手軽にスクレイピングしてデータ化する方法

サイバーマンデー
Amazonプライム会員限定の大セール「サイバーマンデー」開催中!プライム会員限定の大セール

ScraperというChrome拡張を最近たまたま見つけたので使ってみました。

この拡張が、かなり有能なやつでして、WEBページ上の情報を、手軽にテーブルデータ化でき、とても便利だったので紹介です。

photo by Clive Darra

スポンサーリンク
レクタングル(大)広告

Scraperとは

Scraper拡張

Scraperは、WEBページ上の規則性のあるデータを手軽に取得することができるChrome拡張です。

例えば、テーブルデータや、Aリンクデータ、のような特定のHTML要素に入っている情報を、片っ端から取得してテーブルデータ化することができます。

また、その取得したデータをワンクリックでGoogleスプレットシートに保存することができます。

テーブルデータのスクレイピングは以下の動画を見た方が分かりやすいかも。

以下では、その使い道などをいくつか考えてみました。

テーブルデータの取得

最もオーソドックスな使い方と言えば、動画にも出てきたテーブルデータの取得です。

例えば、信長の野望の以下のような武将データテーブルがあったとします。

信長の野望の武将データ

これを、以下のように選択して、Chromeの右クリックメニューから「Scrape similar(似たものをスクレイプ)」を選択します。

信長の野望武将データの選択

すると、新しいウィンドウに、テーブル上の武将データ1192人分が全てスクレイプされて取得されました。Scraperでテーブルデータを取得

項目を絞る

以下のように、左サイドバーで必要なデータのみに絞って再取得(Scrape)すれば、

主要なデータのみに絞る

必要なデータのみを取得することもできます。

主要なデータのみ取得した

Googleスプレッドシートに保存

そして「Export to Google Docs」ボタンを押せば、

Googleドキュメントにエクスポート

以下のように、Googleドライブの利用許可を求めてくるので「承認する」をクリックします。

Scraperが次の許可をリクエストしています

すると、Googleスプレッドシート上にデータが反映されます。

信長の野望のスプレッドシートデータ

後のデータ加工は自由自在です。(個人で利用する範囲では)

いろいろ、WEB上に公開されているテーブルデータ(例えば気象庁のデータとか)を手軽に取得するには良いかもしれません。

Twitterの全ツイートを取得とか

例えば、Twitterのお気に入りの人のツイートを全て取得するなんてこともできます。

全ツイートの取得

まずは、ツイートを取得したいユーザーはページを開き、下にスクロールして、取得したい分だけ表示させます。取得したい分だけスクロール

あとは、取得したいよHTML要素上(今回はツイート部分)で右クリックをして、「Scrape similar」を押します。

取得したい要素上で右クリックして取得する

すると、表示しているツイート全てが取得されます。

ツイートが取得される

こんな簡単に、タイムラインのツイートのみを取得することができます。

データを取得するには、「Copy to clipboard」ボタンからもクリップボードに取得することができます。

クリップボードへコピー

本人のみのツイートのみに絞って取得

ただ、このままだと、リツイートも含まれてしまうので、「本人のみのツイートだけを取得したい」なんて場合は、以下のようにします。

厳密に取得するデータを指定するには、以下の手順で行います。

  1. Selectorのセレクトボックスで「jQuery」を選択(CSSセレクタで選択するため)
  2. Selectorの入力欄に「div[data-screen-name="MrYhira"] p.ProfileTweet-text」のようにCSSセレクタを記入
  3. Scrapeボタンを押してデータを取得

2015-05-04_12h22_55

今回は、CSSセレクタで取得データ条件を絞り込むため、「jQuery」をセレクタにしましたが、「XPath」がわかる場合は、XPathで指定してもOKです。

上記のようにすると、目的の人のみ(今回は@MrYhira)のツイートテキストを一括取得することができます。

リツイートを取り除いたデータの取得

ツイート以外にもセレクタの指定次第で、フォロワーの「スクリーンネーム一覧」や、「Twitter ID一覧」なども、手軽に取得できたりします。

全リンクデータの取得

Yahoo! JAPAN

例えば、Yahoo! JAPANのトップページなどで、以下のように設定を書いてスクレイプすると

Yahoo!Japanでリンクをすべて取得する設定

Yahoo!トップページにある全ての「リンクテキスト」と「リンク先(URL)」を取得するなんてこともできます。

Yahoo!Japanのリンクの取得結果

こういった、テキストに加えて属性値も取得できるのは、地味に便利です。

まとめ

今回は、3つの例のみでしたが、使い方次第では、いろいろなサイトのいろいろな情報を手軽にデータ化することができるようになると思います。(※複数のURLを渡り歩いてスクレイプするということはできません。)

jQueryのCSSセレクタ指定や、XPathの指定は、多少WEBの知識がないと難しいかもしれません。けれど、セレクタ等を知らなくても、感覚的に操作するだけで、ある程度欲しいデータは取得できると思います。

これでWEB上のデータを、エクセルやスプレッドシートに保存しておいて後で見返したり、加えて解析・分析など、個人利用のためのデータ収集の手間が、かなり省けます。

 

追記:WEBサービスで手軽にスクレイピングする以下のような方法があります。

URLを入力するだけ!コンテンツをスクレイピングしてデータ化してくれる無料ツール「import.io」
以前、スクレイピングツールとしてChrome拡張を紹介しました。 この「Scraper」も、使い方はかなり簡単です。けれど今回はさ...