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