0

我正在编写一个使用 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);
4

1 回答 1

2

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

于 2013-02-12T17:58:53.307 回答