• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
جمع آوری اطلاعات از سایت دیگر
#1
سلام و خسته نباشید
من میخوام یک رباتی بنویسم که یک سری اطلاعات رو از توی یک سایت جمع اوری کنه و توی دیتابیس سایت خودمون ذخیره کنه .
مثلا فرض کنید قیمت دلار رو از سایت http://www.2gheroon.ir/ در بیاره و توی دیتابیس ذخیره کنه
بهترین راه حل از نظر شما چیه ؟‌ آیا روش یا کتابخونه ای سراغ دارین که این کار رو تسریع کنه ؟
  پاسخ
تشکر شده توسط :
#2
همون طور که میدونید بهترین راه برای گرفتن اطلاعات کار با API اون هست (البته اگه داره)
اگه نداره هم کافیه با curl سورس صفحه ای که شامل اطلاعات هست رو بگیری و با کتاب خانه های موجود برای کار با Html اطلاعات رو استخراج کنی و بعدش هم insert کنی تو دیتابیس
  پاسخ
تشکر شده توسط : scooter Y.P.Y pars0076
#3
سلام و ممنون . خب البته api که نداره . اما سوال اینه که ایا برای این کار باید از regex استفاده کنم ؟‌یعنی بعد از اینکه curl محتوا رو لود کرد باید با استفاده از regex اطلاعات رو بگیرم ؟ ایا راه دیگه ای هم داره
  پاسخ
تشکر شده توسط :
#4
آره
هم با regEx میشه هم با توابع معمولی PHP:
کد پی‌اچ‌پی:
function getBetween($input$start$end)
{
    
$_output explode($start$input);

    if (isset(
$_output[1]))
    {
        
$_output = @explode($end$_output[1]);
        return 
$_output[0];
    }

    return 
NULL;



بجای curl با socket هم می تونی دیتا رو بگیری:
کد پی‌اچ‌پی:
function getData($host$file NULL)
{
    if(!
is_resource($_socket = @fsockopen($host80$errorNumber$errorMessage30))) return FALSE;

    
$_data "GET /{$file} HTTP/1.1\r\n";
    
$_data .= "Host: {$host}\r\n";
    
$_data .= "Connection: Close\r\n\r\n";
    
fwrite($_socket$_data);
    
$_output '';

    while(!
feof($_socket)) $_output .= fgets($_socket1024);

    
fclose($_socket);
    return 
$_output;

وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : kasbookar Reza scooter
#5
میتونی از Tidy هم برای استخراج استفاده کنی
البته باید تو php ini فعالش کنید اگه نیست
  پاسخ
تشکر شده توسط : scooter


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان