Tutorial
この記事の読了時間:約4分19秒
今週はてブでも大人気を博した記事「真面目にエロサイトを作ってみた【プログラマ編】|ASTRODEO」や、IDEA*IDEAさんでも紹介されていた、PHPでHTMLをparseするライブラリ「htmlSQL」ですが、解析するHTMLを指定するにはSQLちっくな書き方をするので、SQL自体に触れる機会の少ない方には手を出しにくいシロモノです。
SQLわかんないです>< もっとカンタンにparseしたいぉ☆ってゆー方に全力でゴリ押ししたいのが、今回紹介するMITライセンスのPHPライブラリ「PHP Simple HTML DOM Parser」です!
PHP5で書かれたこの「PHP Simple HTML DOM Parser」の最大の特徴は、解析したいHTMLをセレクタで指定できるってトコ。そう、まるでjQueryのように。
そんなワケで今回のエントリーは、jQueryみたいにセレクタでHTMLをparseできるお手軽PHPライブラリ「PHP Simple HTML DOM Parser」のご紹介です。
まずは今回の主人公を狩りに行きましょう。
SourceForge.netの「PHP Simple HTML DOM Parserページ」に行き、緑色のDownloadボタンをクリックすれば自動でダウンロードが開始されます。
落としたフォルダ内の「simple_html_dom.php」ってのが主人公の彼で、他は全部サンプルとかマニュアルとかのファイルになります。
なので、実際に使う際はこの「simple_html_dom.php」だけをアップロードしてください。
例えば、mixiのトップページにあるロゴ画像を取得したい場合は、下記のように書きます。
<?php include('../simple_html_dom.php'); $html = file_get_html('http://mixi.jp/home.pl'); foreach($html->find('#headerArea h1 a img') as $e) echo $e->outertext; ?>
いやー、なんてjQuery。
2行目でsimple_html_dom.phpを読み込み、3行目で取得したいページのURLを記述します。
で、5行目のfind()の中に、jQueryのような感じで「取得したい部分」を記述します。
あとは6行目で取得する範囲を「outertext」ってカタチで選んでいます。
取得する範囲の指定は、innertext(”取得したい部分”を含まない)、outertext(”取得したい部分”を含む)、plaintext(”取得したい部分”のテキストだけを取得する)といった感じで指定してきます。
例えば下記のように記述すれば、Yahoo画像検索の結果を抽出するコトも余裕で可能です。
<?php include('../simple_html_dom.php'); $html = file_get_html('http://image-search.yahoo.co.jp/search?ei=UTF-8&fr=top_ga1_sa&p=sexy'); foreach($html->find('#yschres .grid img') as $e) echo $e->outertext; ?>
ね?ヤバくね?
他にも詳しい説明や使い方などは、PHP Simple HTML DOM Parserマニュアルページにてご確認下さい。
idやclassは”div[id=○○○]”みたいな書き方での指定もできるみたいですし、「取得したい部分」のタグ自体を取り出すコトもできるみたいです。
コレを上手に使えば、結構いろんなWEBサービスのネタをカタチにできるんじゃないでしょーか。
現在進行中のプロジェクトですので、もしバグ等を発見した場合はぜひ報告して、より良い未来を築き上げていこうじゃありませんか諸君!
なにはともあれ、このような偉大なライブラリの作者方にご加護と栄光あれ!
それなら外部ライブラリとして使用するには問題なく使えますから、htmlSQLがBSDライセンスってのも合点がつきました。
いやー、ライセンスってムズカシイ。
関連する記事
同じカテゴリーの記事
コメントを投稿する