0

我已经对很多网站进行了抓取,但特别是其中一个没有将其 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/

4

1 回答 1

1

直接从 php.net 站点阅读有关 curl_setopt 的可能解决方案。这是一种从标头输出中获取 Cookie 内容的解决方法。似乎是一个很酷的选择。

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

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

于 2013-11-01T14:21:02.350 回答