HTMLの要素をSQLのように取り出せるPHPのライブラリ『htmlSQL』

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を使っているようです。