استرجاع محتوى الصفحة باستخدام 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'];
باستخدام هذا الرمز، يمكنك الآن استرداد محتوى الصفحة بالضبط كما هو معروض في متصفحك. ومن خلال مراعاة الأحرف الخاصة في سلسلة الاستعلام، يمكنك التغلب على العقبات التي واجهتها سابقًا. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3