【发布时间】:2015-12-07 23:02:47
【问题描述】:
我在 Laravel 中有一个应用程序,可以抓取网站并检索特定信息。 最近我看到越来越多的网站被 403 禁止,所以我决定第一次尝试 cURL。
我现在唯一的问题是,有 301 或 302 重定向的网站,cURL 不跟随它们。
这就是我所拥有的:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $results['url_search']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$str = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$body = substr($str, $header_size);
curl_close($curl);
正如我所说,在有重定向的页面上,我被卡住了。有什么建议? 我见过一些东西,但没有一个有效。
【问题讨论】:
-
你可以解析头部,然后再发出一个 curl 请求。
-
但是我如何获得实际的标头响应?我所拥有的 ($header = curl_getinfo($curl, CURLINFO_HTTP_CODE);) 只是在解析后给了我数字。我可以以某种方式使用 get_headers 吗?
标签: php curl http-redirect