0

页面: http: //www.nastygal.com/accessories/minnie-bow-clutch

代码:$html = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch');

即使我更改页面右上角的货币,$html始终包含产品的美元价格。当我将页面的货币更改为 CAD 时,如何捕获具有 CAD 价格的 html?

4

2 回答 2

2

似乎国家和货币选择存储在 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
于 2013-01-25T21:46:00.193 回答
2

货币偏好似乎保存在名为:CURRENCYPREFERENCE 的 cookie 中

由于不是您的浏览器建立连接以检索该视图,因此您可能不会随请求发送任何 cookie 数据。

我相信这里的示例 #4 将为您提供所需的内容:http: //php.net/manual/en/function.file-get-contents.php

于 2013-01-25T21:46:53.517 回答