「Webスクレイピングとは何ぞや?」という疑問が浮かんできたので調べてみた。
最近よく聞く、、、わけではありませんが、なんとなく自分の中で「Webスクレイピング」について知りたくなったので、ググったりして調べてみました。
「Webスクレイピング」とは
Webスクレイピングとは、WebサイトからWebページのHTMLデータを収集して、特定のデータを抽出、整形し直すことである。Webスクレイピングを行うことで、Webページを対象として、あたかもWeb APIを利用しているかのようにデータを効率的に取得・収集することが可能になる。用途の例としては、部分的にコンテンツを取り出して携帯電話向けのコンテンツを生成したり、小見出しの一覧を生成したり、といった使い方あある。Webスクレイピングは様々な手段で実現可能であるが、PHPやPerlといったスクリプト言語を使用して行われることが多い。なお「スクレイピング」(scraping)とは元々「削る」や「こすり落とす」といった意味の英語である。
(IT用語辞典より転載)
要するに、対象のWebサイトからいろんなデータ(テキストやMETA情報など)を好きなように抽出して取得することを「Webスクレイピング」というみたいです。
プログラム的にWebスクレイピングをしたい
Webスクレイピングはいろいろな言語で実現することができます。今回は4種類の言語をピックアップしてみました。
1. PHP
「PHP」でWebスクレイピングしたい場合は「PHP Simple HTML DOM Parser」というライブラリを使うと良い感じになります。詳しくは下の記事を参照してみて下さい。
http://www.crystal-creation.com/web-appli/technical-information/programming/php/library/simplehtmldom/
2. JavaScript
「JavaScript」でWebスクレイピングしたい場合は「CasperJS」というツールを使うと良い感じになります。詳しくは下の記事を参照してみて下さい。
Not Found |ミレスポ! - Millennials Sports Marketing
3. Ruby
「Ruby」でWebスクレイピングをしたい場合は「Nokogiri」というライブラリを使うと良い感じになります。詳しくは下の記事を参照してみて下さい。
Nokogiriを使ったRubyスクレイピング [初心者向けチュートリアル] | 酒と涙とRubyとRailsと
4. Python
「Python」でWebスクレイピングをしたい場合は「Scrapy」というフレームワークを使うと良い感じになります。詳しくは下の記事を参照してみて下さい。
PythonとかScrapyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - orangain flavor
Webサービスを使ってお手軽にWebスクレイピングしたい
あらゆるWebサイトをスクレイピングしてAPI化してくれるWebサービスが「kimono」です。特別なプログラムを使う必要は全くなくて、ブラウザ上でクリックするだけで、対象のWebサイトからデータ(JSON / CSV)を抽出することができます。
ちなみに、使い方については下の2記事に詳しく書いてありますので、興味ある方は参照してみて下さい。
*参考記事
http://20kaido.com/archives/7516578.html
クリックだけであらゆるサイトをスクレイピングできるWebサービス「kimono」が凄い - ソフトアンテナブログ
Webスクレイピングの参考スライド(SlideShare)
上のツールを使う前に、まずはこれらのスライドをサラリと眺めて勉強してみたら良いかもしれません。
個人的な感想
なんだかこの「Webスクレイピング」は面白そうなので「Webスクレイピング」使って何らかのWebサイトでも制作してみたいものですね。少し考えてみることにします。。。