我已经为很多网站进行了抓取,但其中一个特别是没有将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/
答案 0 :(得分:1)
直接从php.net网站上阅读possible solution关于curl_setopt的内容。这是从标头输出中获取Cookie内容的解决方法。似乎是一个很酷的选择。
此外,您可以在curl_setop上修改一些规则,从而获得令人惊讶的结果。有时候我们会使用比需要更多的选项。
我还建议您echo
整个$ch
内容(它会像浏览器一样打印页面)。有时,您会在看到实时结果内容的标题中看到详细错误。