Bagaimana untuk Mendapatkan Kembali Kandungan Halaman Menggunakan cURL Walaupun Ralat \'Halaman Dialihkan\'?

Patricia Arquette
Lepaskan: 2024-10-22 20:52:03
asal
508 orang telah melayarinya

How to Retrieve Page Content Using cURL Despite

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan