ようこそ!逆襲のニートブログへ

ブログ内検索

最近の記事

はてなブックマーク数

この日記のはてなブックマーク数

カテゴリー

月別アーカイブ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

情報の削り取り = スクレイピング

HTMLソースコードから必要な情報を抜き出すスクレイピングは、正規表現をチマチマ組み立てて抽出するのではなくて、DOMのツリー構造で扱うのがやりやすいみたいだ。

そのためのツールを作ってくれている人たちがいるんだな。

スクレイピング すくれいぴんぐ

"scrape"とは「削ること」。
特に、ウェブサイトのデータを必要な部分だけ抽出して利用すること。



進化する“Webスクレイピング”技術の世界

WebサービスのAPIやRSSフィードを使って複数サイトのサービスや情報をマッシュアップ――。
これはWeb2.0が包含するいくつかの概念のうち、最も重要なものの1つだ。
Amazon.comやGoogle、Yahoo!、楽天といった大手Webサイトは、RESTやSOAPを用いたAPIを公開しており、さまざまなサービス提供者や個人がAPIを通して各種サービスを利用している。

その一方、世の中のWebサイトの大多数はWeb1.0的なHTMLやCGIフォームしか提供していないのが現実だ。
こうした背景からWeb1.0サイトから構造化されたデータを引っ張り出す“Webスクレイピング”技術が急速に発展してきているようだ。


正規表現などの文字列処理を使い、ヒューリスティックに抽出処理を書き下すしかない。
それは多くの場合、「関係する情報の始まりを示す特定の文字列から、終わりの文字列に挟まれた特定のタグのうち、特定の正規表現にマッチするもの」といった面倒な処理になる。

もう少し楽な方法は、HTMLドキュメントをツリーとして扱うことだ。
処理対象のHTMLは、いつも必ずしも整形式のXHTMLというわけではないが、非整形式のHTMLでも、できる限り整合的な形でXML化するRuby向けライブラリとして「HTree」や「Hpricot」というものが存在する。

ツリー構造であれば、泥臭い文字列処理は多少軽減される。



「scRUBYt! 0.2.0」は、Webスクレイピング技術の集大成のようなフレームワークだ。名前が示すとおり、scRUBYt!はRuby向けのツールを組み合わせもので、HpricotとWWW::Mechanizeを統合し、さらにXPathよりも人間に分かりやすい構文が使えるようにしたもの。



scRUBYt!
http://scrubyt.org/

面倒くさそうな作業だと思ったら…
スクレイピングはもっと簡単にならなければいけない

スクレイピングをするときに正規表現を書いたりしないといけないのは、キカイにはどこが抜き出したいところなのかが理解できないからだ。
ニンゲンだったら、どこが抜き出したいかなんてだれでもわかる。
ページをスクレイプするために正規表現を書くよりも、正規表現を書けないひとがスクレイプできるようにするためのGUIフロントエンドを書いて、いままで正規表現が書けるニンゲンにしかできなかった部分を、知識なしでニンゲンならできるようにして、スクレイピングルールリポジトリを作っていくことが今の段階でかけていることだと感じています。


なるほど!
まずは情報の取り出し方、ルールの作り方を簡単にする方法から考えないといけませんね!

Rubyレシピブック 第2版 268の技 Rubyレシピブック 第2版 268の技
青木 峰郎、後藤 裕蔵 他 (2007/02/01)
ソフトバンク クリエイティブ
この商品の詳細を見る
関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:
http://gooddays1.blog37.fc2.com/tb.php/289-a639c7f8

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。