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]
include_once("../snoopy.class.php");
include_once("../htmlsql.class.php");

$wsql = new htmlsql();

// connect to a URL
if (!$wsql->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を使っているようです。

関連する記事:

Powered by

  1. phpでのスクレイピング | Site Labo ブログ - pingback on 2009/5/26 火曜日 at 0:32:56
  2. クローラーについて - pingback on 2011/7/24 日曜日 at 16:07:05
  3. pc.casey.jp » [PHP] open_basedir が解決できなかった - pingback on 2011/10/2 日曜日 at 0:03:05

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Trackbacks and Pingbacks: