如何用cURL的POST方法获取表单的响应?

时间:2015-12-15 17:33:30

标签: php html parsing post curl

抱歉我的英文。 我需要使用php和curl在this page上获得价格。 此页面使用带有POST方法的HTML表单来获取产品内容。

我试图以这种方式得到答案:

require_once $_SERVER["DOCUMENT_ROOT"].'/vendor/autoload.php';
use \Curl\Curl;

$curl = new Curl();

$curl->post('http://www.k-rauta.ru/pages/product.aspx?pid=000000000501204050');
// or 
$curl->post('http://www.k-rauta.ru/pages/product.aspx', array(
    'pid' => '000000000501204050',
));

echo $curl->response;

我使用了https://github.com/php-curl-class/php-curl-class

1 个答案:

答案 0 :(得分:1)

我查看了您尝试在代码中请求的页面。在我的浏览器中,它向我展示了价格。所以我尝试了curl终端命令,当然,它说'永久地移动'。

该网站只需要您访问一个(会话)Cookie,因此在正常情况下,您的浏览器首先会被“永久移动”'与会话cookie一起。然后,它会自动重定向到任何地方,在适当的产品页面上,因为它已经有cookie。 (这可能涉及多个重定向。)

现在更详细地了解一下,我可以看到唯一需要的cookie是' StoreDetails'。

我不知道这个cookie是如何生成的,但这是我的:

StoreDetails={5F28ADB5-0BD9-476F-9643-B01AEBB4319A}

因此,将此添加到您的代码应该有所帮助:

require_once $_SERVER["DOCUMENT_ROOT"].'/vendor/autoload.php';
use \Curl\Curl;

$curl = new Curl();
$curl->setCookie('StoreDetails', '{5F28ADB5-0BD9-476F-9643-B01AEBB4319A}');
$curl->post('http://www.k-rauta.ru/pages/product.aspx?pid=000000000501204050');
echo $curl->response;