おおむね下記のような仕組みを実装したいと考えています。
登録したサイトに問い合わせて必要な情報だけ抽出してデータベースに格納し、格納したデータを使ってページを生成する
PHPでスクレイピングを実行するライブラリはいくつかあるようですが、今回は「PHP Simple HTML DOM Parser」というライブラリを使ってみました。お約束
毎度のことですが、参照は自己責任でお願いいたします。
ダウンロード
PHP Simple HTML DOM Parserの「Download & Documents」にある「Download latest version form Sourceforge.」のリンクをクリックするとダウンロードできます。
2011.11.07現在
セットアップ
ダウンロードしたファイルを解凍後、任意の場所にフォルダをおきます。
コードを書いてみる
ためしにこのブログのindex.php内の画像リンクとURLリンクを取得させて見ました。 simple_html_dom.phpをインクルードしたら、あとはルールに従って書けばよいみたいです。簡単ですね。
<?php
include './simplehtmldom/simple_html_dom.php';
// URLを指定してインスタンスをつくる
<br /> $html = file_get_html('http://www.560days.com/');
// 全部の画像を取得して表示
foreach($html->find('img') as $element) echo $element->src . '<br>';
// 全部のURLを取得して表示
foreach($html->find('a') as $element) echo $element->href . '<br>';
?>
実行結果
実行結果を確認すると取得できていました。これすごく便利です。細かい指定方法についてはこのあたりのエントリーが参考になると思います。
PHPでHTMLをパーサーにかけてスクレイピング
htmlSQLよりアツい!?jQueryみたいにセレクタでHTMLをparse(解析)する「PHP Simple HTML DOM Parser」
これは便利
ドキュメントが英語なのがアレですががんばって読み解きたいと思います。こんな便利なライブラリを書いてくださった開発者の方に感謝です。次は取得したデータをデータベースに格納する仕組みを考えたいと思います。