Mengambil Kandungan Halaman Menggunakan cURL
Dalam konteks ini, anda berusaha untuk mengikis kandungan halaman hasil carian Google menggunakan cURL. Walaupun cuba untuk menetapkan ejen pengguna dan pelbagai pilihan, kejayaan mendapatkan semula kandungan halaman telah mengelakkan anda. Ralat ubah hala atau "halaman dialihkan" terus mengganggu usaha anda.
Adalah dipercayai bahawa isu ini mungkin berpunca daripada pengekodan aksara khas dalam rentetan pertanyaan. Untuk mengurangkan perkara ini, pindaan pada kod PHP anda diperlukan.
Berikut ialah pendekatannya:
<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>
Penggunaan:
<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>
Dengan ini kod, anda kini boleh mendapatkan semula kandungan halaman yang tepat seperti yang dipaparkan dalam penyemak imbas anda. Dengan mengambil kira aksara khas dalam rentetan pertanyaan, anda boleh mengatasi halangan yang anda hadapi sebelum ini.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali Kandungan Halaman Menggunakan cURL Walaupun Ralat \'Halaman Dialihkan\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!