Snoopy でHTMLを取得する

オープンソースで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を参照することで取得できます。