2007/11/12 月曜日

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

Filed under: HTML — ne-zu @ 23:16:49 このエントリをはてなブックマークに追加

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:
  1. <?php
  2.     include_once("../snoopy.class.php");
  3.     include_once("../htmlsql.class.php");
  4.    
  5.     $wsql = new htmlsql();
  6.    
  7.     // connect to a URL
  8.     if (!$wsql->connect('url', 'http://www.php-seed.net/blog/')){
  9.         echo $wsql->error;
  10.         exit;
  11.     }
  12.    
  13.     if (!$wsql->query('SELECT text FROM title')){
  14.         echo $wsql->error;
  15.         exit;
  16.     }
  17.  
  18.     foreach($wsql->fetch_array() as $row){
  19.         print_r($row);
  20.     }
  21.    
  22. ?>

このような感じで。
PHPのスクレイピングが盛り上がりますね。
HTML取得にSnoopyを使っているようです。

2007/10/8 月曜日

ページ遷移のmeta文

Filed under: HTML — ne-zu @ 9:38:59 このエントリをはてなブックマークに追加

ちょいちょい使うわりにはいつもどこかで探してくるのでメモ。

HTML:
  1. <meta http-equiv="Refresh" content="$sec;URL=$url">

$sec = 待ち時間を秒数で。
$url = 飛び先のURL。

Powered by PHP-SeeD and WordPress ME