🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۷ آقای بهپور فریاد
مشکل در لود سایت
جامعه پی اچ پی ایجاد شده در ۱۰ اسفند ۱۴۰۱

سلام مشکل این کجاست ؟ ماژول کرل هم چک کردم فعاله

<?php
function httpGet($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    // curl_setopt($ch,CURLOPT_EADER,false);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}
echo httpGet("https://www.digikala.com/");

efdd-curl.png

سلام امیر جان، فانکشنتون رو به شکل زیر تغییر بدید و از خطایی که رخ میده عکس بفرستید.

function httpGet($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLOPT_HEADER, false);
    $output = curl_exec($ch);
    if ($output === false) {
        $error = curl_error($ch);
        curl_close($ch);
        return "Curl error: " . $error;
    }
    curl_close($ch);
    return $output;
}
شایان رفیعی ۱۰ اسفند ۱۴۰۱، ۱۵:۴۷

هیچ خطایی رخ نمیدهد و صفحه خالیه !

اینم بگم فقط رو دیجیکالا نمیشه بقیه سایت‌ها رو تست کردم مثل سون لرن اوکی بود مشکل از چی هست ؟


آقای بهپور فریاد ۱۰ اسفند ۱۴۰۱، ۱۷:۰۷

سلام،

ctrl+u بزنید (view page source) اطلاعات رو میبینید.

غنچه نوبختی ۱۱ اسفند ۱۴۰۱، ۱۰:۱۹

مشکل هنوز حل نشده

آقای بهپور فریاد ۱۳ اسفند ۱۴۰۱، ۰۷:۰۶

چه کدیو اجرا میکنید و خروجی چی میگیرید؟ (داخل پیج سورس یا ترمینال)

غنچه نوبختی ۱۳ اسفند ۱۴۰۱، ۰۷:۲۳

همون کد بالا و تو پیج سورس خروجی میگیرم هیچ چیزی نشون نمیده

آقای بهپور فریاد ۱۳ اسفند ۱۴۰۱، ۰۷:۲۵

الان دو تا کد هست.

کد خودتون یا صادق؟ چون کد دوم اگر خروجی وجود نداشته باشد باید خطای curl error چاپ شود.

من آدرس www.digikala.com رو اجرا میکنم بدون مشکلی خروجی میده. خروجی را در htmlentities چاپ کنید و تست کنید. (خروجی که میگیرید دقیقا همان خروجی است که در page source ای که از digikala.com میگیریده.)

البته این موضوع رو هم بدونید از دیجیکالا برای گرفتن دیتای کامل صفحات با curl میتونید صفحات مختص محصول و بلاگ رو بخونید. صفحاتی که دیتاشون مثل صفحه ی اول داینامیک تولید میشه باید با ابزار دیگری مثل سلنیوم خوند. (در کل برای پیمایش این موارد بهتره به api سایت درخواست ارسال بشه و از شرکت دسترسی به api رو گرفت. بد نیست اینرو هم اضافه کنم که چطور درخواست‌های داینامیک یک سایت رو ببینید. برای اینکه درخواست‌ها رو ببینید میتوند روی سربرگ network بزنید و فیلتر xhr و روی هرکدوم که کلیک کنید از هدر میتونید لینکشو رو ببینید و از preview مقدارش ... نمونه لینکی از محصولات دیجیکالا و url هرکدام.)

function httpGet($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLOPT_HEADER, false);
    $output = curl_exec($ch);
    
    if ($output === false) {
        $error = curl_error($ch);
        curl_close($ch);
        return "Curl error: " . $error;
    }
    curl_close($ch);
    return $output;
}
echo htmlentities(httpGet("https://www.digikala.com/mag/xiaomi-redmi-note-12s-emerges-as-new-budget-smartphone-series/"));
بهترین پاسخ
غنچه نوبختی ۱۳ اسفند ۱۴۰۱، ۰۸:۰۰