0

我正在使用 php 和 curl 创建网页抓取。我看如果http响应的状态码是3xx,curl还是会下载body内容。如果正文内容很小,我认为这没问题,但在我的情况下,有些页面有 3xx 和巨大的正文内容。如果它得到 3xx 而没有获取正文内容,我只想立即重定向。怎么做?

4

1 回答 1

0

首先你需要告诉它只有小于 4xx 的状态才是好的。

$handle = curl_init(); 
curl_setopt($handle, CURLOPT_FAILONERROR, true);

CURLOPT_FAILONERROR
如果返回的 HTTP 代码大于或等于 400,则为 TRUE 以静默失败。默认行为是正常返回页面,忽略代码。

其次,对于 3xx 错误,您需要遵循重定向。见CURLOPT_FOLLOWLOCATIONCURLOPT_MAXREDIRS

于 2013-04-03T14:28:39.820 回答