Maison > développement back-end > tutoriel php > Comment extraire efficacement le contenu d'une page à l'aide de cURL avec gestion des erreurs ?

Comment extraire efficacement le contenu d'une page à l'aide de cURL avec gestion des erreurs ?

DDD
Libérer: 2024-10-22 20:34:26
original
423 Les gens l'ont consulté

How to Efficiently Extract Page Content Using cURL with Error Handling?

Comment extraire le contenu d'une page à l'aide de cURL : une solution détaillée

Comprendre le problème

Lorsque vous tentez de récupérer le contenu HTML d'une page Web à l'aide cURL, il est courant de rencontrer des redirections ou des erreurs de « page déplacée ». Cela peut souvent être attribué à des caractères spécialement codés dans la chaîne de requête.

Optimisation pour cURL :

Pour récupérer efficacement le contenu de la page sans rencontrer ces problèmes, optimisez votre code cURL comme suit :

<code class="php">function get_web_page($url) {
    $user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';

    $options = array(
        CURLOPT_CUSTOMREQUEST  => "GET",
        CURLOPT_POST           => false,
        CURLOPT_USERAGENT      => $user_agent,
        CURLOPT_COOKIEFILE     => "cookie.txt", 
        CURLOPT_COOKIEJAR      => "cookie.txt",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => false,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING       => "",
        CURLOPT_AUTOREFERER    => true,
        CURLOPT_CONNECTTIMEOUT => 120,
        CURLOPT_TIMEOUT        => 120,
        CURLOPT_MAXREDIRS      => 10,
    );

    $ch      = curl_init($url);
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    $err     = curl_errno($ch);
    $errmsg  = curl_error($ch);
    $header  = curl_getinfo($ch);
    curl_close($ch);

    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;
    return $header;
}</code>
Copier après la connexion

Exemple :

Récupérer et gérer les erreurs potentielles lors de la lecture de la page :

<code class="php">$result = get_web_page($url);

if ($result['errno'] != 0)
    // Error handling for invalid URL, timeout, or redirect loops.

if ($result['http_code'] != 200)
    // Error handling for issues like missing page, permission denial, or unavailability.

$page = $result['content'];</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal