エントリー名 :

HTMLをスクレイピングして解析(パース)する

HTMLをスクレイピングして解析(パース)する

HTMLをスクレイピング(scraping)してあれこれとするとき、僕はずっと正規表現に頼っていたのですが、 ページの構造が変化するとすぐに使えなくなってしまうし、時間がかかる割りに退屈な作業なので何とかならないかなと思っていました。

PHPで探していたのですが、XML(とかRSS)をパースする関数やライブラリは、良く目にするものの、HTMLを処理できるものはなかなか見つかりませんでした。以下は、PHP(とかRuby、Perl)でHTMLをスクレイピングしたりパースするための方法。(追記 2007/5/21)。

PHPでスクレイピング&パース

HTMLを整形式のXML文書に修正するPHPクラス

HTMLを、整形式のXMLに変換してくれるライブラリ。PEARのXML_HTMLSax3が同梱されているので、これだけでちゃんと動きます。いんちきなHTMLとか、XHTMLが整形式のXMLになるので、後は通常のXMLと同じように処理できる。

動作は、サンプルの「sample.php」ですぐに確認可。「$target = ~」で対象ファイルと、文字コードを指定し、「$output_xml = true;」でXMLファイルになる。とても便利!

rhacoのSimpleTagを試してみました

rhaco.org(らこ。PHPのWebアプリケーションフレームワーク)のSimpleTagを使うとPHPでHTMLを簡単にparseできる。使い方もシンプルです。(参考:[rhaco]SimpleTag

rhacoは、本当にいろんなことができるっぽい。ただ、ドキュメントが見当たらない?みたいなのでなかなか内容が掴めない。 テンプレートtemplate(rhaco)エンジンとかも使える。

Snoopy

スヌーピーはウェブブラウザをシミュレートするPHPのクラス。リンク(aタグ)を抜き出したり、submitして、getしたりできる。 そういえば、前に使ったMagpie RSSも中でSnoopyを使っているみたい。

PHPその他

PHP以外の他の言語の方が、この手のスクレイピング、パース(parse)周りは豊富かもしれない。 僕は、PHP以外、ほとんど使えないのですが一応メモ。

Rubyでスクレイピング&パース

「WWW::Mechanizeとか」、 「htree」、「Hpricot」とかいろいろある。 サーバーにはRubyもインストールされているようなので、初めてだけど、 VikiWiki - htreeを参考に、 "htree"あたりを使ってみたらちゃんと動いた。

こういうのをみると、Rubyもいいなって思う。

RubyでWebサイトを解析するときに強い味方となるライブラリ、HpricotとWWW::Mechanize

Perlでスクレイピング&パース

WWW::MechanizeはRubyとかに移植されているが、元は Perlで書かれていたものだったらしい。

他にも、PerlにはWeb::Scraperというモジュールがあるようです(追記 2007/5/21)。これは使いやすそうですね。

スクレイピングとか他の雑メモ

Spidering スパイダ 参考書

Spidering hacks―ウェブ情報ラクラク取得テクニック101選
Spidering hacks―ウェブ情報ラクラク取得テクニック101選 Perl中心だけど、かなりおもしろい。Hack#84にPHPのサンプルコードも一応ある。紹介されているコードが日本のサイトに合わせてあったり(国立国会図書館、Yahoo!JAPANのサイトなど)、日本語処理にかんするパートもちゃんと載っている。ページ数500ぐらいでちょっと厚めかな。

更新2007/7/10 PHPその他のリンクに追加


HTMLをスクレイピングして解析(パース)するの前後の記事

カテゴリー [ Web ] [ メモ・覚え書き ]



アマゾン(Amazon.co.jp) データマイニング

Answer Tree 3.1J 教育機関向け

1. ソフトウェア Answer Tree 3.1J 教育機関向け

ブランド:エス・ピー・エス・エス 。レーベル:エス・ピー・エス・エス 。製造:エス・ピー・エス・エス 。出版:エス・ピー・エス・エス 。発売:エス・ピー・エス・エス。

データマイニング入門

2. 本 データマイニング入門

[2008-12-05)]五段階評価5.0 すばらしい。 データマイニングを”R"言語で実行するという本。 前のほうの章で書いてあるデータマイニングの総合解説が非常にわかりやすい。 ”R”言語で応用するところも、対話形...

Rによるデータサイエンス - データ解析の基礎から最新手法まで

3. 本 Rによるデータサイエンス - データ解析の基礎から最新手法まで

[2007-10-13)]五段階評価4.5 ”古典的”多変量データ解析から学べます Rに関する書籍を連続して3冊読んだ2冊目です。 数十年前に学生をしていたときには、せっかく理論的なことを理解しても実計算の膨大な手間を前にすると尻込みしてしまう...

数式を使わないデータマイニング入門 隠れた法則を発見する (光文社新書)

4. 本 数式を使わないデータマイニング入門 隠れた法則を発見する (光文社新書)

[2006-05-17)]五段階評価3.5 数式を使わずに概観できるが、説例に好みが分かれるかも 題名の通りに本格的な数式は登場せず、厳密さを犠牲にしても分かりやすさにこだわってデータマイニングの何たるかを豊富な例により説明しています。データマイニングとは何...

集合知プログラミング

5. 本 集合知プログラミング

[2008-07-25)]五段階評価4.0 とても実用性の高いデータマイニング手法取扱説明書 「集合知」というキーワードに興味があったので読んでみました。読み応えのある本です。 集合知に限らず、データマイニング関連の最初の一冊としても良いかもしれません。...

テキストマイニングハンドブック

6. 本 テキストマイニングハンドブック

[2010-07-09)]作者:ローネン・フェルドマン 。レーベル:東京電機大学出版局 。製造:東京電機大学出版局 。出版:東京電機大学出版局 。発売:東京電機大学出版局。関連:[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)

テキストマイニングを使う技術/作る技術―基礎技術と適用事例から導く本質と活用法

7. 本 テキストマイニングを使う技術/作る技術―基礎技術と適用事例から導く本質と活用法

[2006-11)]五段階評価4.5 心うたれる技術書 「自分の専門分野の技術を使うと世の中の問題はなんでも解ける」と主張するのが重要と思い込んでいる研究者、あるいは、技術の限界を考えもせずに浅い知識で「理論的に解決...

2

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)



このエントリーのトラックバックURL:

アーカイブ

コメント

トラックバック

広告

あわせて読みたい

あわせて読みたい