رفتن به مطلب

چگونه با php از سایتای دیگه اطلاعات بدزدیم؟!


پست های پیشنهاد شده

آموزش ستفاده از اطلاعات سایتهای دیگر با php

 

میخوایم از سایتای دیگه مطلب بدزدیم!!! میتونیم سایتمون رو طوری درست کنیم که وقتی داریم استراحت میکنیم خودش بره توی سایتای دیگران و مطالب سایت ها رو بگیره و توی سایت ما ذخیره کنه و نشون بده. خب این کار چجوریه؟ به نظرتون برا عملی کردنش باید چیکار کنیم؟ میریم توی سایت مورد نظر مطلبش رو کپی میکنیم میایم توی سایت خودمون میزاریم به همین راحتی simple-smile.png خب حالا چجوری میشه این کار رو با PHP انجام داد؟ میرم سر اصل مطلب و چند روش رو براتون به صورت ساده توضیح میدم.اگه بخوایم کل مطالب یه صفحه رو از یه سایت دیگه بگیریم و توی صفحه شخصی خودمون نمایش بدیم میتونیم از تابع file_get_contents به صورت زیر استفاده کنیم:

echo file_get_contents('http://www.100t.ir/');

 

خب همونطور که میبینید اول با دستور file_get_contents محتوای صفحه اول سایت رو گرفتم و با قرار دادن یه دستور echo محتوا رو توی صفحه ی شخصی خودم چاپ کردم. به همین راحتی:-)بعضی سایتا برای اینکه نتونیم اطلاعاتشون رو بدزدیم میان و یه لایه ی امن خریداری میکنن (همون لایه ی SSL که پروتکل HTTPS ازش استفاده میکنه) ما هم برای اینکه بتونیم اطلاعاتشون رو بگیریم از کتابخانه ی معروف Curl که در سیستم عامل لینوکس قرار داره استفاده میکنیم .Curl.php

function getPage($url) {$ch = curl_init();curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_REFERER, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);$result = curl_exec($ch);curl_close($ch);return $result;}//now we use Curl to get a page:echo getPage('http://www.100t.ir/');

 

 

 

اول اومدیم یه تابع ساختیم و توش از دستورات Curl استفاده کردیم. خب این تابع رو به این صورت ساختیم که آدرس یه صفحه رو بهش میدیم و محتوای اون صفحه رو بهمون تحویل میده.

 

خب حالا اگه بخوایم یه قسمت خاصی از محتوای یه سایت رو بگیریم چیکار میکنیم؟ روش های مختلفی برای گرفتن اطلاعات سایت های دیگه وجود داره مثلا قسمت خبرخوان (RSS) یک سایت رو بگیریم و داده ها رو از توش بکشیم بیرون یا اینکه مستقیما صفحه مورد نظر رو دریافت کنیم و با توابع مختلف PHP اون رو تجزیه کنیم و عکس ها و متن هاشو بکشیم بیرون. یه کتابخونه ای که خیلی مورد استفاده قرار میگیره کتابخونه Simple HTML DOM parser هست.DOMhtml.php

set_time_limit(-1);header('Content-Type: text/html; charset=utf-8');// example of how to use basic selector to retrieve HTML contentsinclude('simple_html_dom.php');// get DOM from URL or file$html = file_get_html('http://www.100t.ir/');// find all image with full tagforeach($html->find('img') as $e){echo $e->outertext . '<br>';

 

}

 

توی دستورات بالا ابتدا زمان مورد نیاز برای تحلیل صفحه رو منفی یک قرار دادم که به معنای بی نهایت هست. این برای مواقعی استفاده میشه که نمیدونیم چقد طول میکشه تا دستوراتمون اجرا بشه. بعدش نوع صفحه رو html تنظیم کردم و محتوا رو از نوع uft-8 گذاشتم که فارسی رو ساپورت کنه. در قسمت بعد کتابخونه simple DOM HTML رو اظافه کردم و ازش استفاده کردم تا همه ی عکسای صفحه رو بگیرم. حالا وقتی که کد اجرا بشه همه ی عکسای سایت طرح‌چه رو توی صفحه میتونید ببینید. میتونید کد مربوط به این مثال رو از پایین همین صفحه دانلود کنید و آزمایش کنید.شما میتونید با استفاده از این آموزش به صورت اتوماتیک مطالب و عکسای سایتای دیگه رو بگیرید و توی سایت خودتون نمایش بدید به همین راحتی به همین خوشمزگی simple-smile.png

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

 

get-site-contents-by-PHP.jpg

 

 

 

 

مطلب مفیدی بود ولی ای کاش هم عنوان رو بهتر قرار میدادی

هم این که کد هارو داخل تابع کد html قرار میدادی که تایپیک از حالت بهم ریخته خارج بشه

 

موفق باشی

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
×
×
  • اضافه کردن...