温馨提示×

php网页爬虫 如何处理 HTTP状态码

PHP
小樊
83
2024-12-12 19:09:02
栏目: 编程语言

在PHP中,处理HTTP状态码的方法是检查curl_exec()函数返回的状态码。你可以使用curl_getinfo()函数来获取HTTP状态码。以下是一个简单的示例,展示了如何在PHP网页爬虫中处理HTTP状态码:

<?php
function getUrlContent($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 如果目标URL是HTTPS,需要禁用SSL证书验证

    $content = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);

    if ($httpCode == 200) {
        // 请求成功,处理返回的内容
        echo $content;
    } else {
        // 请求失败,处理HTTP状态码
        echo "Error: HTTP status code - " . $httpCode . "\n";
        if ($error) {
            echo "Error message: " . $error . "\n";
        }
    }

    curl_close($ch);
}

$url = "https://example.com";
getUrlContent($url);
?>

在这个示例中,我们首先使用curl_init()初始化一个新的cURL会话。然后,我们设置cURL选项,包括目标URL、是否将返回的内容作为字符串返回、是否跟随重定向以及是否禁用SSL证书验证(如果目标URL是HTTPS)。

接下来,我们使用curl_exec()执行cURL请求并将返回的内容存储在$content变量中。同时,我们使用curl_getinfo()获取HTTP状态码并将其存储在$httpCode变量中。我们还检查是否有cURL错误,并将其存储在$error变量中。

最后,我们检查HTTP状态码是否为200(表示请求成功)。如果是,则处理返回的内容。否则,我们输出HTTP状态码和错误消息(如果有)。在完成cURL请求后,我们使用curl_close()关闭cURL会话。

0