PDA

View Full Version : چگونه تشخیص بدیم که یک صفحه با curl کامل گرفته شده ؟؟



se8820726
پنج شنبه 25 مهر 1392, 17:49 عصر
سلام به تمام دوستان
آقا من با استفاده از curl اطلاعات یه سری صفحات رو میگیرم
اینم نمونه کد من :


function get_data($url){

$url = str_replace(' ', '%20', $url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36');

$data['content'] = curl_exec($ch);
$data['rescode'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$data['type'] = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$data['endurl'] = urldecode ( curl_getinfo($ch, CURLINFO_EFFECTIVE_URL) );

curl_close($ch);
return $data;
}


اما مشکل اینه که اطلاعات بعضی از صفحات رو کامل نمیگیره و من نمیدونم که چطور باید اینو تشخیص بدم ؟؟

حتی توی این متغیر:


$data['rescode']

هم کد 200 رو میگیرم ولی بازم اطلاعات صفحه کامل گرفته نمیشه !!!
نمیدونم چطوری تشخیص بدم که یه صفحه کامل گرفته شده یا نه ؟؟ :(((

id1385
سه شنبه 30 مهر 1392, 19:10 عصر
منظورتون از اینکه صفحه کامل گرفته شده چیه؟
یا صفحه پیدا میشه و لود میشه یا هم خیر!
کامل دیگه کجاشه ؟
شما از مثل کد زیر وارد کنید
این برای یک گربر سایت هست، بنده ماژولامو اینطوری می نویسم، مشکلی هم نداشتم
شما هم می تونید استفاده کنید



function sample_grab($url = ''){
if(isset($url) and !empty($url)){
/* if data passed correctly to this modual it'll process and return data*/
set_time_limit (1000000);
$OutArray = array();
$matches = array();

$cURL =$url;
$reffer = 'https://www.google.com';
$agent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22";
$site = curl_init();
curl_setopt($site, CURLOPT_URL, $cURL );
curl_setopt($site, CURLOPT_USERAGENT, $agent);
curl_setopt($site, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($site, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($site, CURLOPT_REFERER,$reffer);
curl_setopt($site, CURLOPT_NOBODY, false);
$str= curl_exec($site);
$inf = curl_getinfo($site);

curl_close($site);
if(strlen($str) > 1){

/* find out catagory name */


موفق باشید