Webスクレイピングを可能にするPHPライブラリ・htmlSQL

Ads

htmlsql

htmlSQLはWebスクレイピング(部分的にHTML抽出)を可能にするPHPライブラリです。ソースが公開されていたのでご紹介します。

※先日、お知らせさせて頂きましたように、この記事は僕が管理していた別のブログの過去記事を移行したもので正確性に欠ける可能性があります。何卒ご了承願います。

Webスクレイピング

HTML内を部分的に取り出し、表示する事で、それを容易にするスクリプトがhtmlSQLというPHPライブラリです。DOM解析をSQL風に指示するらしい。

htmlsql01
デモがありますのでご体感下さい。→htmlSQL – live example

以下のコードを使うようです。

<?php

/*
** htmlSQL - Example 1
**
** Shows a simple query
*/

include_once("../snoopy.class.php");
include_once("../htmlsql.class.php");

$wsql = new htmlsql();

// connect to a URL
if (!$wsql-&gt;connect('url', 'http://codedump.jonasjohn.de/')){
print 'Error while connecting: ' . $wsql-&gt;error;
exit;
}

/* execute a query:

This query extracts all links with the classname = nav_item
*/
if (!$wsql-&gt;query('SELECT * FROM a WHERE $class == "nav_item"')){
print "Query error: " . $wsql-&gt;error;
exit;
}

// show results:
foreach($wsql-&gt;fetch_array() as $row){

print_r($row);

/*
$row is an array and looks like this:
Array (
[href] =&gt; /feedback.htm
[class] =&gt; nav_item
[tagname] =&gt; a
[text][/text][/text] =&gt; Feedback
)
*/

}

?>

スパムにも使えてしまいそうなので気をつけたいですね。

jonasjohn.de