"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استرداد محتوى الصفحة باستخدام cURL بالرغم من أخطاء \"تم نقل الصفحة\"؟

كيفية استرداد محتوى الصفحة باستخدام cURL بالرغم من أخطاء \"تم نقل الصفحة\"؟

تم النشر بتاريخ 2024-11-09
تصفح:478

How to Retrieve Page Content Using cURL Despite \

استرجاع محتوى الصفحة باستخدام cURL

في هذا السياق، فإنك تسعى إلى استخراج محتوى صفحة نتائج بحث Google باستخدام cURL. على الرغم من محاولة تعيين وكلاء المستخدم والخيارات المتنوعة، إلا أن الاسترداد الناجح لمحتوى الصفحة قد استعصى عليك. تستمر أخطاء إعادة التوجيه أو "نقل الصفحة" في عرقلة جهودك.

يُعتقد أن المشكلة قد تنبع من ترميز أحرف خاصة في سلسلة الاستعلام. للتخفيف من هذا الأمر، من الضروري إجراء تعديلات على كود 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;
}

الاستخدام:

$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'];
باستخدام هذا الرمز، يمكنك الآن استرداد محتوى الصفحة بالضبط كما هو معروض في متصفحك. ومن خلال مراعاة الأحرف الخاصة في سلسلة الاستعلام، يمكنك التغلب على العقبات التي واجهتها سابقًا.

بيان الافراج أعيد طبع هذه المقالة على: 1729596678 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3