Snoopy でHTMLを取得する

メモ:  Category:php

オープンソースで Snoopy と呼ばれる Web クライアントがあります。 Snoopy のサイトでは、 simulates a web browser と紹介されています。

ここでは、 Snoopy1.2 を使用して HTTP Response を取得してみます。

同じようなことが Pear の HTTP_Request パッケージでも可能です。 Snoopy の利点は、依存関係がないことかな。 HTTP_Request は、 Net_URL と Net_Socket が必要になります。

それでは、 Snoopy を使用して Amazon Web サービスの xml データを取得します。

<?php
require_once 'Snoopy.class.php';

$awsUrl = 'http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService';
$awsUrl .= '&SubscriptionId=「Amazonで取得したID」';
$awsUrl .= '&Operation=ItemSearch&SearchIndex=Music&Artist=Doobie%20Brothers';
$awsUrl .= '&ResponseGroup=Medium';

$objSnoopy = new Snoopy;

$objSnoopy->fetch($awsUrl);
$awsBuff = $objSnoopy->results;

print $awsBuff;
?>

Snoopy クラスをインスタンス化し fetch 関数でリクエストします。

Snoopy 内部でヘッダーと本体に分解され、本体はメンバ変数の results に格納されます。ヘッダーは、メンバ変数の headers に配列で格納されます。

レスポンスコードは、メンバ変数の response_code を参照することで取得できます。

bluenote by BBB