卷曲不保存所有Cookie

时间:2013-11-01 13:58:43

标签: php curl cookies web-scraping

我已经为很多网站进行了抓取,但其中一个特别是没有将cookie保存到我的cookie文件中。有什么想法吗?

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_TIMEOUT,8200);
curl_setopt($ch,CURLOPT_TIMEOUT_MS,8200);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,8200);
$cookie_file = "cookies/zapper.txt";
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
if ($fields) {curl_setopt($ch,CURLOPT_POST, count($fields)); }
if ($fields) {curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); }

这是我做过的第一个没有响应我的cookie保存的网站。所有其他人使用相同的代码并完美地工作。我甚至模仿他们的表格的帖子,并伪造标题,以防它检查[那些。

我试图模仿添加到购物车进程的网站是http://zapper.co.uk/

1 个答案:

答案 0 :(得分:1)

直接从php.net网站上阅读possible solution关于curl_setopt的内容。这是从标头输出中获取Cookie内容的解决方法。似乎是一个很酷的选择。

此外,您可以在curl_setop上修改一些规则,从而获得令人惊讶的结果。有时候我们会使用比需要更多的选项。

我还建议您echo整个$ch内容(它会像浏览器一样打印页面)。有时,您会在看到实时结果内容的标题中看到详细错误。