Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man Seiteninhalte mithilfe von cURL mit Fehlerbehandlung effizient extrahieren?

Wie kann man Seiteninhalte mithilfe von cURL mit Fehlerbehandlung effizient extrahieren?

DDD
DDDOriginal
2024-10-22 20:34:26372Durchsuche

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

So extrahieren Sie Seiteninhalte mit cURL: Eine detaillierte Lösung

Verstehen des Problems

Beim Versuch, den HTML-Inhalt einer Webseite mit zu extrahieren Wenn Sie cURL verwenden, kommt es häufig zu Umleitungen oder Fehlern beim Verschieben der Seite. Dies kann häufig auf speziell codierte Zeichen in der Abfragezeichenfolge zurückgeführt werden.

Optimierung für cURL:

Um den Seiteninhalt effektiv abzurufen, ohne dass diese Probleme auftreten, optimieren Sie Ihren cURL-Code wie folgt:

<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>

Beispiel:

Potenzielle Fehler beim Lesen der Seite abrufen und behandeln:

<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>

Das obige ist der detaillierte Inhalt vonWie kann man Seiteninhalte mithilfe von cURL mit Fehlerbehandlung effizient extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn