حل شده

استخراج اطلاعات یوتیوب با Curl

بازدید32.5kپست ها1آخرین فعالیت5 سال پیش
0
4

من می خواهم اطلاعات سایتی مثل یوتیوب را با curl بکشم بیرون یا سایت https://www.pexels.com/ اما برای من صفحه خالی رو نمایش میده ایا امکانش هست خود یوتیوب دسترسی با curl رو غیر فعال کرده اگه راحی هست که اطلاعات اینجور سایتها رو بیرون بکشیم معرفی کنید و امکانش هس به دلیل فیلترینگ باشد
اینم کد من:
با لوکال می خواهم این کارو انجام بدم

$e="https://www.youtube.com";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$e);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_ENCODING ,"UTF-8");

$headers[] = "Content-type: text/xml;charset=\"utf-8\"";
//$headers[] = 'Content-length: 0';
 $headers[]="Cache-Control: no-cache";
            $headers[]="Pragma: no-cache";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$r=curl_exec($ch);
curl_close($ch);
echo $r;
آخرین ویرایش: 22-12-2018 ???? 12:34، توسط رضا رمضانپور دلیل: لطفا عنوان مناسب انتخاب کنید تا در اینترنت قابل جست Ùˆ جو باشد

1 پاسخ

1

سلام خوش اومدید. همونطورک ه دوست عزیز skytech اشاره کردن کد شما ظاهرا مشکلی نداره. curl داره درخواست میفرسته در صورتی که اون سایت از طریق ISP شما مسدود شده. پس درمرحله اول باید کامپیوتر شما دسترسی به اون سایت داشته باشه.

البته میتونید برای Curl پراکسی ست کنید مثلا:

$url = 'http://dynupdate.no-ip.com/ip.php';
$proxy = '127.0.0.1:8888';
//$proxyauth = 'user:password';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);

echo $curl_scraped_page;

نمیدونم هدف شما چیه اما این کار شما احتمالا بی فایدست چون محتوای این سایت با جاوا اسکریپت رندر میشه.
شاید PhantomJS بیشتر بتونه کمک کنه.

ویرایش

برای گرفتن پورت پراکسی میتونید به داکیومنت نرم افزار مورد نظر مراجعه کنید یا تو اینترنت سرچ کنید. مثلا proxydb.net

<hr>

در خصوص phantomjs تمام اطلاعاتی برای کار بهش احتیاج دارید تو داکیومنتش موجود هست. میتونید بررسی کنید. برای مثال تو قسمت page automation این مثال رو گذاشته که نحوه استخراج اطلاعات صفحه است:

http://phantomjs.org/page-automation.html

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function(status) {
  if (status !== 'success') {
    console.log('Unable to access network');
  } else {
    var ua = page.evaluate(function() {
      return document.getElementById('qua').textContent;
    });
    console.log(ua);
  }
  phantom.exit();
});
آخرین ویرایش: 23-12-2018 ???? 09:38، توسط رضا رمضانپور
Reza@ با جاوا اسکریپت چطوری میشه این کارو انجام بدیم میشه بیشتر توضیح بدید – masoud-fathi 5 سال پیش
portپراکسی رو از کجا بیارم – masoud-fathi 5 سال پیش
تو اینترنت پراکسی سرچ کن هست پورت هم نوشته. برای سایفون هم فکر کنم 1080 باشه – کیوان سمیعی 5 سال پیش
@masoud پست رو ویرایش کردم ببینید. – رضا رمضانپور 5 سال پیش
الان کار این پراکسی ها چیست آیا به عنوان فیلتر شکن عمل میکنند من هر کدام از این ipها رو چک می کنم هیچ تغییری نمیکنه و سایت یوتیوب رو برای من باز نمیکنه – masoud-fathi 5 سال پیش
الان من پراکسی ها رو روی کدم امتحان میکنم باز صفحه خالی میده مگه این پراکسی نقش فیلتر شکن رو بازی نمیکنه – masoud-fathi 5 سال پیش
بله پراکسی مثل فیلترشکن عمل میکنه. شما برای بازکردن سایت تو لوکال (چون یوتیوب فیلتره) نیاز به یه پراکسی https دارید. اول هم پراکسی رو تو مرورگر ست کنید وتست کنید که کار میکنه و مشکل اتصال به پراکسی ندارید. اگر اینطور باشه CURL هم مشکلی نداره. – رضا رمضانپور 5 سال پیش
من در ابونتو هر پراکسی رو میدم سایت یوتیوب رو باز نمیکنه اما با فیلتر شکن خودم وصل میشم یوتیوب باز میشه اما در هر دوصورت کد من یوتیوب رو باز نمیکنه – masoud-fathi 5 سال پیش

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.