gisTy
07.12.2008, 06:35
Собственно недавно в разделе "Статьи" была статейка на тему того, как собирать листы мыльников. Там я описал простенький метод, который вчера и реализовал на PHP. Так как писал под себя, то удобнее работать через консоль (запустил в консоли "php mail.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 Мбит/с.. Надо еще прочекать файл на повтор, думаю четверть отсеется. но это будет потом.
Вобщем пользуйтесь наздоровье.
// 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 Мбит/с.. Надо еще прочекать файл на повтор, думаю четверть отсеется. но это будет потом.
Вобщем пользуйтесь наздоровье.