我正在使用 php 和 curl 创建网页抓取。我看如果http响应的状态码是3xx,curl还是会下载body内容。如果正文内容很小,我认为这没问题,但在我的情况下,有些页面有 3xx 和巨大的正文内容。如果它得到 3xx 而没有获取正文内容,我只想立即重定向。怎么做?
问问题
182 次
1 回答
0
首先你需要告诉它只有小于 4xx 的状态才是好的。
$handle = curl_init();
curl_setopt($handle, CURLOPT_FAILONERROR, true);
CURLOPT_FAILONERROR
如果返回的 HTTP 代码大于或等于 400,则为 TRUE 以静默失败。默认行为是正常返回页面,忽略代码。
其次,对于 3xx 错误,您需要遵循重定向。见CURLOPT_FOLLOWLOCATION
和CURLOPT_MAXREDIRS
。
于 2013-04-03T14:28:39.820 回答