使用curl获取javascript设置的cookie

时间:2013-02-12 17:54:03

标签: php cookies curl session-cookies

我正在编写一个使用curl来获取网页内容的脚本。我搜索Set-Cookie的标题以收集页面设置的所有Cookie的名称。问题是某些cookie是从加载到页面中的javascript文件中设置的,当然这些cookie不包含在响应头中。

那么,有没有办法使用curl从网页获取所有cookie,包括通过javascript生成的?

目前我正在做这样的事情:

$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, <www.example.com>);
$response = curl_exec($curl);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($http_code == 200) {
  $headers = substr($response, 0, curl_getinfo($curl, CURLINFO_HEADER_SIZE));
  // check headers for all cookies sent in response
}
curl_close($curl);

1 个答案:

答案 0 :(得分:2)

cURL不会运行javascript,所以不,没有办法获取这些cookie。您必须模拟或自动化浏览器才能实现这一目标。幸运的是,有一些工具可以帮助您。也许看看PHP-webdriver