IDEA*IDEAさんで紹介されてました、HTMLの要素をSQLのように取り出せるPHPのライブラリ、htmlSQL。これは素敵なスクレイピングライブラリです。ちょっと使ってみましたが、なかなか面白く、使いやすいものになっていると思います。
SQLのようにというのは、sampleを紐解くと、
SELECT * FROM h1
SELECT * FROM a
SELECT * FROM td
SELECT href as url, text FROM a
SELECT * FROM a WHERE preg_match(“/^http:\/\//”, $href)
SELECT * FROM a WHERE preg_match(“/^\/snippets/i”, $href) and preg_match(“/^array_/i”, $text)
SELECT * FROM *
SELECT id, name, password FROM user WHERE $status == “active”
SELECT * FROM * WHERE $id == “header”
SELECT * FROM a WHERE substr($href,0,1) != “/”
SELECT * FROM * WHERE $class == “nav_item”
SELECT * FROM a WHERE ($href == “foo.htm” and $title == “foo”) or ($title == “bar”)
と、このようにSELECTできます。
PHPでは、
[php]
connect(‘url’, ‘http://www.php-seed.net/blog/’)){
echo $wsql->error;
exit;
}
if (!$wsql->query(‘SELECT text FROM title’)){
echo $wsql->error;
exit;
}
foreach($wsql->fetch_array() as $row){
print_r($row);
}
?>
[/php]
このような感じで。
PHPのスクレイピングが盛り上がりますね。
HTML取得にSnoopyを使っているようです。