Wie kann ich Seiteninhalte mithilfe von cURL trotz Fehlern beim „Seitenverschoben' abrufen?

Patricia Arquette
Freigeben: 2024-10-22 20:52:03
Original
508 Leute haben es durchsucht

How to Retrieve Page Content Using cURL Despite

Abrufen von Seiteninhalten mithilfe von cURL

In diesem Zusammenhang möchten Sie den Inhalt einer Google-Suchergebnisseite mithilfe von cURL durchsuchen. Trotz der Versuche, Benutzeragenten und verschiedene Optionen festzulegen, ist Ihnen ein erfolgreicher Abruf des Seiteninhalts nicht gelungen. Weiterleitungen oder „Seite verschoben“-Fehler beeinträchtigen Ihre Bemühungen weiterhin.

Es wird angenommen, dass das Problem auf die Kodierung von Sonderzeichen in der Abfragezeichenfolge zurückzuführen ist. Um dies abzumildern, sind Änderungen an Ihrem PHP-Code erforderlich.

Hier ist der Ansatz:

<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

Verwendung:

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

if ($result['errno'] != 0) {
    // Handle errors: bad URL, timeout, redirect loop
}

if ($result['http_code'] != 200) {
    // Handle errors: no page, no permissions, no service
}

$page = $result['content'];</code>
Nach dem Login kopieren

Damit Code können Sie nun den genauen Seiteninhalt abrufen, wie er in Ihrem Browser angezeigt wird. Indem Sie die Sonderzeichen in der Abfragezeichenfolge berücksichtigen, können Sie die Hindernisse überwinden, mit denen Sie zuvor konfrontiert waren.

Das obige ist der detaillierte Inhalt vonWie kann ich Seiteninhalte mithilfe von cURL trotz Fehlern beim „Seitenverschoben' abrufen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage