桜ヶ丘日記

技術メモとかとか

PHPでCSSセレクタ使ってスクレイピング!

*ご参考

http://codezine.jp/article/detail/4162
http://nonn-et-twk.net/twk/zend-http-client


*Zend_Dom_Query、Zend_HTTP_Clientを入れる

$ sudo pear channel-discover zend.googlecode.com/svn
$ sudo pear install zend/zend


*使ってみる

$ vi test.php && cat test.php
require_once 'Zend/Http/Client.php';
require_once 'Zend/Dom/Query.php';
$url = 'http://www.goo-net.com/car/';
$client = new Zend_Http_Client();
$client->setUri($url);
$response = $client->request(Zend_Http_Client::GET);
$dom = new Zend_Dom_Query();
$dom->setDocumentHtml($response->getBody());
$a = $dom->query('table#brandlist ul li a');
foreach ($a as $b) {
  var_dump($b->nodeValue);
}
$php test.php
string(12) "レクサス"
string(9) "トヨタ"
string(6) "日産"
string(9) "ホンダ"
string(9) "マツダ"
string(12) "ユーノス"
string(18) "日本フォード"
string(6) "三菱"
string(9) "スバル"
string(12) "ダイハツ"
string(9) "スズキ"
string(9) "いすゞ"
string(12) "ミツオカ"
string(9) "ルノー"
string(12) "プジョー"
string(15) "シトロエン"
string(21) "ヴェンチュリー"
string(12) "バーキン"
string(27) "メルセデス・ベンツ"
string(3) "AMG"
string(15) "マイバッハ"
string(12) "スマート"
string(3) "BMW"
string(15) "BMWアルピナ"
string(12) "アウディ"
string(27) "フォルクスワーゲン"
string(9) "オペル"
string(12) "ポルシェ"
string(27) "ヨーロッパフォード"
string(12) "イエス!"
string(9) "ボルボ"
string(9) "サーブ"
string(21) "ドンカーブート"
string(21) "ロールスロイス"
string(15) "ベントレー"
string(12) "ジャガー"
string(15) "デイムラー"
string(21) "ランドローバー"
string(2) "MG"
string(4) "MINI"
string(12) "ローバー"
string(12) "ロータス"
string(24) "アストンマーチン"
string(12) "モーガン"
string(3) "TVR"
string(15) "ヒュンダイ"
string(6) "起亜"
string(6) "大字"
string(14) "GMマティス"
string(4) "CT&T"
string(15) "フィアット"
string(12) "アバルト"
string(15) "フェラーリ"
string(12) "ランチア"
string(21) "アルファロメオ"
string(15) "マセラティ"
string(21) "ランボルギーニ"
string(21) "アウトビアンキ"
string(18) "キャデラック"
string(12) "シボレー"
string(18) "ポンテアック"
string(15) "ビュイック"
string(12) "サターン"
string(9) "ハマー"
string(15) "リンカーン"
string(12) "フォード"
string(18) "マーキュリー"
string(18) "クライスラー"
string(30) "クライスラー・ジープ"
string(9) "ダッジ"
string(21) "スタークラフト"
string(12) "ティアラ"

 

*利用

取得したDOMElementは下記を参考にほげほげする

http://www.php.net/manual/ja/class.domelement.php