برگزیده های پرشین تولز

تجزیه و تحلیل صفحه

alimosavifard

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
17 جولای 2006
نوشته‌ها
2,070
لایک‌ها
356
محل سکونت
MA
سلام

می خوام یک صفحه متنی رو تحلیل کنم و چیزهایی که داخل یک کلاس HTML هست رو داخل یک متغییر قرار بدم .

چطور می شه همچین کاری کرد ؟
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
به این کار میگن scraping. معمولاً با عبارات باقاعده (regex) انجام میشه. سر نخ رو دادم فکر کنم بقیشو خودت باید بری دنبالش.
 

alimosavifard

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
17 جولای 2006
نوشته‌ها
2,070
لایک‌ها
356
محل سکونت
MA
به این کار میگن scraping. معمولاً با عبارات باقاعده (regex) انجام میشه. سر نخ رو دادم فکر کنم بقیشو خودت باید بری دنبالش.

تشکر . کمک کردید .

فکر می کنید این بهترین راه هست ؟
روی نتایج چطور کار کنم که محدود به یک کلاس بشه ؟
PHP:
[LEFT]function get_content($url)  
{  
   $ch = curl_init();  
  
   curl_setopt ($ch, CURLOPT_URL, $url);  
   curl_setopt ($ch, CURLOPT_HEADER, 0);  
  
   ob_start();  
  
   curl_exec ($ch);  
   curl_close ($ch);  
   $string = ob_get_contents();  
  
   ob_end_clean();  
     
   return $string;      
  
}  

$content = get_content("persiantools.com");[/LEFT]
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
این کدی که گذاشتی فقط خوندن صفحه رو انجام میده. چند تا خطا داری مثلاً //:http رو نذاشتی. یا دلیلی نداره از بافرینگ استفاده کنی (به جاش CURLOPT_RETURNTRANSFER رو یک بذار و خروجی curl_exec رو بگیر).

درواقع برای این کار راههای مختلف هست مثلاً اگه ارسال اطلاعات و کوکی و لاگین و این چیزا نداری، ورژن php بالای 5 باشه و سرور پورتها رو نبسته باشه همین یک خط همه کارها رو انجام میده:
کد:
$html = file_get_contents('http://...');

از توایع fsock هم میتونی واسه این کار استفاده کنی. اگه از curl میخوای استفاده کنی یک راه استفاده از کلاسهاست که کار رو راحت تر میکنن مثل http://www.phpclasses.org/package/1988-PHP-cURL-extension-wrapper-access-remote-Web-resources.html

بعدش باید مقادیر رو از صفحه دربیاری که میتونی با strpos و substr کار کنی یا عوضش از regex ها استفاده کنی که خیلی قدرتمندتر هستند.
 

alimosavifard

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
17 جولای 2006
نوشته‌ها
2,070
لایک‌ها
356
محل سکونت
MA
این کدی که گذاشتی فقط خوندن صفحه رو انجام میده. چند تا خطا داری مثلاً //:http رو نذاشتی. یا دلیلی نداره از بافرینگ استفاده کنی (به جاش CURLOPT_RETURNTRANSFER رو یک بذار و خروجی curl_exec رو بگیر).

درواقع برای این کار راههای مختلف هست مثلاً اگه ارسال اطلاعات و کوکی و لاگین و این چیزا نداری، ورژن php بالای 5 باشه و سرور پورتها رو نبسته باشه همین یک خط همه کارها رو انجام میده:
کد:
$html = file_get_contents('http://...');

از توایع fsock هم میتونی واسه این کار استفاده کنی. اگه از curl میخوای استفاده کنی یک راه استفاده از کلاسهاست که کار رو راحت تر میکنن مثل http://www.phpclasses.org/package/1988-PHP-cURL-extension-wrapper-access-remote-Web-resources.html

بعدش باید مقادیر رو از صفحه دربیاری که میتونی با strpos و substr کار کنی یا عوضش از regex ها استفاده کنی که خیلی قدرتمندتر هستند.

کلا تشکر از شما . همین راهنمایی های اجمالی که کردید کمکم کرد در تکمیل این دوتا پروژه :
continuously.co.uk و boultan.com
 
بالا