Собственно недавно в разделе "Статьи" была статейка на тему того, как собирать листы мыльников. Там я описал простенький метод, который вчера и реализовал на PHP. Так как писал под себя, то удобнее работать через консоль (запустил в консоли "php mail.php" и пошел в институт, а он все собирает). Собственно код простенький получился: PHP: <?php // Mail harvester by gisTy set_time_limit(0); $crountMax = 200; //через сколько шагов проверять мыльники на наличие повторов и сохранять результат в файл. $crount = 0; $db = 0; $massive[] = ''; $fh = fopen("mails.txt","a");//где mails.txt - файл с мыльниками. for($i = 1;;$i++) { $url = "http://otvet.mail.ru/question/".$i; $packet = file_get_contents($url); preg_match_all("/<span id=\"online:(.*?)\" class=/i", $packet, $result); $mas = array_pop($result); $temp = array_merge($massive, $mas); $massive = $temp; $crount++; if($crount == $crountMax) { $result = array_unique($massive); fwrite($fh, implode("\n",$result)); $db += count($result); unset($massive); $massive[] = ''; unset($result); unset($temp); unset($mas); unset($crount); } $packet = ''; } ?> Не знаю как на счет скорости, но часов за 15 у меня уже около 400к мыл собрано и лежит в файле (это получается приблизительно 7-8 мыл/сек) на моих 7,5 Мбит/с.. Надо еще прочекать файл на повтор, думаю четверть отсеется. но это будет потом. Вобщем пользуйтесь наздоровье.
Code: <?php $addr = "http://otvety.mail.ru/"; $mdb = "mails.txt"; $cont = file_get_contents($addr); preg_match_all("|\<div.+class=\"add\"\>\<a.+href=\"http:\/\/www.mail.ru\/agent\?message\&to=(.+\.ru)\"\>|i", $cont, $mail); $fp = fopen($mdb, "r+"); fputs($fp, $mail[1]."\r\n"); fclose($fp); ?> написал простой вариант.
Code: <?php $fp = fopen("mdb.txt" "r+"); $mails = file("mails.txt"); $mails = array_unique($mails); $i = count($mails); while($i--) fputs($fp, $mails[$i]."\r\n"); ?> сортировщик для базы =) --------------------------------- собственно и все! и думаю этого хватит для большого хека