ページ: http://www.nastygal.com/accessories/minnie-bow-clutch
コード: $html = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch');
ページの右上で通貨を変更しても、 $htmlには常に製品の USD 価格が含まれています。ページの通貨を CAD に変更するときに、CAD 価格を含む HTML を取得するにはどうすればよいですか?
ページ: http://www.nastygal.com/accessories/minnie-bow-clutch
コード: $html = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch');
ページの右上で通貨を変更しても、 $htmlには常に製品の USD 価格が含まれています。ページの通貨を CAD に変更するときに、CAD 価格を含む HTML を取得するにはどうすればよいですか?
国と通貨の選択がCookieに保存されているようです。
私はあなたがあなたのfile_get_contents()
呼び出しと一緒にそれらの値を渡さなければならないだろうと仮定しています。参照: PHP-file_get_contentsを使用してCookieを送信する
編集#1
私のコメントをフォローアップするために、私はこれをテストしました:
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: CURRENCYPREFERENCE=cad\r\n"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch', false, $context);
print_r($file);
そしてこれを得ることができました:
編集#2:
あなたの2番目のコメントに応えて。それらは重要な詳細でした。あなたのブックマークレットは削られた内容をどうしますか?ブックマークした製品ページのコピーを自分のWebサイトに保存していますか?とにかく、実行のリクエストを送信する前に、ブックマークレットを変更してユーザーのCookieを確認する必要がありますfile_get_contents()
。
次の簡単なブックマークレットの例を使用して、nastygal.comからCookieにアクセスできました。注:nastygal.comはjQueryとjQueryUIcookieプラグインを使用します。より一般的なソリューションを探している場合は、次のスクリプトが存在することに依存しないでください。
javascript:(function(){ console.log($.cookie('CURRENCYPREFERENCE')); }());
JSコンソールでの出力:
cad
通貨設定がCURRENCYPREFERENCEという名前のCookieに保存されているようです
そのビューを取得するために接続を確立しているのはブラウザではないため、リクエストと一緒にCookieデータを送信していない可能性があります。
ここの例4で、必要なものが得られると思います:http: //php.net/manual/en/function.file-get-contents.php