页面: http: //www.nastygal.com/accessories/minnie-bow-clutch
代码:$html = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch');
即使我更改页面右上角的货币,$html始终包含产品的美元价格。当我将页面的货币更改为 CAD 时,如何捕获具有 CAD 价格的 html?
页面: http: //www.nastygal.com/accessories/minnie-bow-clutch
代码:$html = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch');
即使我更改页面右上角的货币,$html始终包含产品的美元价格。当我将页面的货币更改为 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:
回应您的第二条评论。这些都是重要的细节。您的小书签如何处理抓取的内容?您是否在自己的网站上保存了已添加书签的产品页面的副本?无论如何,在提交运行请求之前,您必须修改您的小书签以检查用户的 cookie file_get_contents()
。
我可以使用以下简单的小书签示例从 nastygal.com 访问我的 cookie。注意:nastygal.com 使用 jQuery 和 jQuery UI cookie 插件。如果您正在寻找更通用的解决方案,则不应依赖这些脚本:
javascript:(function(){ console.log($.cookie('CURRENCYPREFERENCE')); }());
在 JS 控制台中输出:
cad
货币偏好似乎保存在名为:CURRENCYPREFERENCE 的 cookie 中
由于不是您的浏览器建立连接以检索该视图,因此您可能不会随请求发送任何 cookie 数据。
我相信这里的示例 #4 将为您提供所需的内容:http: //php.net/manual/en/function.file-get-contents.php