سورس Crawler به زبان PHP برای نوشتن موتور جست و جو
#1
Note 
سلام
نیازی به توضیح نداره این سورس یه خزنده(Crawler) بیسار ساده است برای کسایی که میخوان با نحوه کار اشنا بشن.

کد php:
// Disable time limit to keep the script running
set_time_limit(0);
// Domain to start crawling
$domain "http://webdevwonders.com";
// Content to search for existence
$content "google-analytics.com/ga.js";
// Tag in which you look for the content
$content_tag "script";
// Name of the output file
$output_file "analytics_domains.txt";
// Maximum urls to check
$max_urls_to_check 100;
$rounds 0;
// Array to hold all domains to check
$domain_stack = array();
// Maximum size of domain stack
$max_size_domain_stack 1000;
// Hash to hold all domains already checked
$checked_domains = array();
 
// Loop through the domains as long as domains are available in the stack
// and the maximum number of urls to check is not reached
while ($domain != "" && $rounds $max_urls_to_check) {
    
$doc = new DOMDocument();
 
    
// Get the sourcecode of the domain
    
@$doc->loadHTMLFile($domain);
    
$found false;
 
    
// Loop through each found tag of the specified type in the dom
    // and search for the specified content
    
foreach($doc->getElementsByTagName($content_tag) as $tag) {
        if (
strpos($tag->nodeValue$content)) {
            
$found true;
            break;
        }
    }
 
    
// Add the domain to the checked domains hash
    
$checked_domains[$domain] = $found;
    
// Loop through each "a"-tag in the dom
    // and add its href domain to the domain stack if it is not an internal link
    
foreach($doc->getElementsByTagName('a') as $link) {
        
$href $link->getAttribute('href');
        if (
strpos($href'http://') !== false && strpos($href$domain) === false) {
            
$href_array explode("/"$href);
            
// Keep the domain stack to the predefined max of domains
            // and only push domains to the stack that have not been checked yet
            
if (count($domain_stack) < $max_size_domain_stack &&
                
$checked_domains["http://".$href_array[2]] === null) {
                
array_push($domain_stack"http://".$href_array[2]);
            }
        };
    }
 
    
// Remove all duplicate urls from stack
    
$domain_stack array_unique($domain_stack);
    
$domain $domain_stack[0];
    
// Remove the assigned domain from domain stack
    
unset($domain_stack[0]);
    
// Reorder the domain stack
    
$domain_stack array_values($domain_stack);
    
$rounds++;
}
 
$found_domains "";
// Add all domains where the specified search string
// has been found to the found domains string
foreach ($checked_domains as $key => $value) {
    if (
$value) {
        
$found_domains .= $key."\n";
    }
}
 
// Write found domains string to specified output file
file_put_contents($output_file$found_domains); 

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  درخواست راهنمایی در مورد تابع chdir fbbiyght76 0 253 16-02-2016 ساعت 16:00
آخرین ارسال: fbbiyght76
Note کد بدست آوردن رتبه سایت WWWorker 0 745 07-02-2015 ساعت 09:40
آخرین ارسال: WWWorker
Note سوال در مورد حلقه foreach sixi 4 683 18-06-2014 ساعت 16:42
آخرین ارسال: sixi
Note سورس وبلاگ نوشته شده با فریمورک لاراول(Laravel) Daniel 0 480 09-05-2014 ساعت 19:20
آخرین ارسال: Daniel
Note اشکال این کد php کجاست ؟ Download95 9 1,060 08-04-2014 ساعت 22:04
آخرین ارسال: REza mAX
Note جست و جو در رشته در php PHP.sec 0 326 07-04-2014 ساعت 15:22
آخرین ارسال: PHP.sec
Note جست و جو در دیتابیس در php PHP.sec 0 371 15-03-2014 ساعت 17:18
آخرین ارسال: PHP.sec
Note درخواست آموزش سیمفونی 2Web 1 559 15-09-2013 ساعت 13:38
آخرین ارسال: REza mAX
Note سورس ساخت Data URL از یک فایل با PHP SOFTAFZAR 0 522 17-08-2013 ساعت 12:14
آخرین ارسال: SOFTAFZAR
Note سوالی در مورد ساخت CMS TroFun 3 578 12-08-2013 ساعت 18:34
آخرین ارسال: Daniel

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