読者です 読者をやめる 読者になる 読者になる

halka-tech

技術的なことを書きます

phpでhtmlをPHP Simple HTML DOM Parserでパースした

phpでhtmlをパースしたいなあと思ってグーグル先生に聞いたらHTML Parser for PHP-4とか言うやつの解説をしているウェッブサイトやブログが多かったんですがphp4じゃないですし、sourceforgeをみたら

Note: This project has been inactive for some time, but we recommend checking out Simple HTML DOM Parser, which is a PHP 5 DOM parser based on this project.

とか書いているので、PHP Simple HTML DOM Parserを使ってみました。
よく分からないんですけど、includeすればいいみたいです。
とくにやることもないので、将来有望なg91のメンバー一覧をパースしてメンバー数を数えてみました。

<?php
//includeすればいいらしいです。
include 'simple_html_dom.php';
//ソースの取得。file_get_html()はsimple_html_dom.phpで定義されているみたいです。
//引数に取得したいページのURL
$html=file_get_html('http://generation1991.g.hatena.ne.jp/keyword/%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E4%B8%80%E8%A6%A7');
//一応初期化
$count=0;
//tdの中身を取得する
foreach($html->find('td') as $td){
//まあはてなのIDがなきゃ参加出来ませんから、d:idの数を数えることにしました。
if(preg_match('/d:id/',$td)) $count++;
}
echo "$count";
?>

ネストされているときは

<?php
//前略
foreach($html->find('ul') as $ul){
 foreach($ul->find('li') as $li) echo $li;
}

echoすると
<li>なんとか</li>と表示されるので、いやだったらstrip_tags($li)とかしてタグを取り除くといいと思います。
まあそういうことみたいです。
手軽に出来そうですね。
あとはマニュアルを読むと例が多数あるのでわかりやすいと思います。