エントリー名 :

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

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

1. 洋書 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。関連:Data Mining: Practical Machine Learning Tools and Techniques, Third Edition (The Morgan Kaufmann Series in Data Management Systems)

Data Mining with Microsoft SQL Server 2008

2. 洋書 Data Mining with Microsoft SQL Server 2008

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

ビッグデータ革命 無数のつぶやきと位置情報から生まれる日本型イノベーションの新潮流

3. 洋書 ビッグデータ革命 無数のつぶやきと位置情報から生まれる日本型イノベーションの新潮流

[2012-03-09)]作者:野村総合研究所 。レーベル:アスキー・メディアワークス 。製造:アスキー・メディアワークス 。出版:アスキー・メディアワークス 。発売:アスキー・メディアワークス。関連:ビッグデータビジネスの時代 堅実にイノベーションを生み出すポスト・クラウドの戦略

性欲の科学 なぜ男は「素人」に興奮し、女は「男同士」に萌えるのか

4. 洋書 性欲の科学 なぜ男は「素人」に興奮し、女は「男同士」に萌えるのか

[2012-02-10)]作者:オギ・オーガス 。レーベル:阪急コミュニケーションズ 。製造:阪急コミュニケーションズ 。出版:阪急コミュニケーションズ 。発売:阪急コミュニケーションズ。関連:快感回路---なぜ気持ちいいのか なぜやめられないのか

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

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

[2011-11-26)]作者:Matthew A. Russell 。レーベル:オライリージャパン 。製造:オライリージャパン 。出版:オライリージャパン 。発売:オライリージャパン。関連:集合知プログラミング

Answer Tree 3.1J 教育機関向け

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

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

その数学が戦略を決める

7. 洋書 その数学が戦略を決める

[2007-11-29)]作者:イアン・エアーズ 。レーベル:文藝春秋 。製造:文藝春秋 。出版:文藝春秋 。発売:文藝春秋。関連:リスク・リテラシーが身につく統計的思考法―初歩からベイズ推定まで (ハヤカワ文庫 NF 363 〈数理を愉しむ〉シリーズ) (ハヤカワ文庫NF―数理を愉しむシリーズ)

2

コメントを投稿

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



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

アーカイブ

コメント

トラックバック

広告

あわせて読みたい

あわせて読みたい