エントリー名 :

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) データマイニング

入門 ソーシャルデータ ―データマイニング、分析、可視化のテクニック

1. 本 入門 ソーシャルデータ ―データマイニング、分析、可視化のテクニック

[2011-11-26)]作者:Matthew A. Russell 。レーベル:オライリージャパン 。製造:オライリージャパン 。出版:オライリージャパン 。発売:オライリージャパン。関連:ビューティフルビジュアライゼーション

その数学が戦略を決める

2. 本 その数学が戦略を決める

[2007-11-29)]作者:イアン・エアーズ 。レーベル:文藝春秋 。製造:文藝春秋 。出版:文藝春秋 。発売:文藝春秋。関連:ビッグデータビジネスの時代 堅実にイノベーションを生み出すポスト・クラウドの戦略

Rによるテキストマイニング入門

3. 本 Rによるテキストマイニング入門

[2008-12-16)]作者:石田 基広 。レーベル:森北出版 。製造:森北出版 。出版:森北出版 。発売:森北出版。関連:Rによるやさしい統計学

Answer Tree 3.1J 教育機関向け

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

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

The Elements of Statistical Learning: Data Mining, Inference, and Prediction (Springer Series in Statistics)

5. 本 The Elements of Statistical Learning: Data Mining, Inference, and Prediction (Springer Series in Statistics)

[2009-03)]作者:Trevor Hastie 。レーベル:Springer-Verlag 。製造:Springer-Verlag 。出版:Springer-Verlag 。発売:Springer-Verlag。関連:Data Mining: Concepts and Techniques, Third Edition (The Morgan Kaufmann Series in Data Management Systems)

Data Mining with Microsoft SQL Server 2008

6. 本 Data Mining with Microsoft SQL Server 2008

[2008-11-17)]作者:Jamie MacLennan 。レーベル:Wiley 。製造:Wiley 。出版:Wiley 。発売:Wiley。

Data Mining, Second Edition: Practical Machine Learning Tools and Techniques, Second Edition (The Morgan Kaufmann Series in Data Management Systems)

7. 本 Data Mining, Second Edition: Practical Machine Learning Tools and Techniques, Second Edition (The Morgan Kaufmann Series in Data Management Systems)

[2005-06-22)]作者:Ian H. Witten 。レーベル:Morgan Kaufmann 。製造:Morgan Kaufmann 。出版:Morgan Kaufmann 。発売:Morgan Kaufmann。関連:Artificial Intelligence: International Version: A Modern Approach

2

コメントを投稿

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



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

アーカイブ

コメント

トラックバック

広告

あわせて読みたい

あわせて読みたい