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

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

DDD
Freigeben: 2024-10-22 20:34:26
Original
399 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage