PDA

Просмотр полной версии : Сборщик мыл.


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 Мбит/с.. Надо еще прочекать файл на повтор, думаю четверть отсеется. но это будет потом.
Вобщем пользуйтесь наздоровье.

PHPoozy
07.12.2008, 06:47
<?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);
?>


написал простой вариант.

159932
07.12.2008, 06:51
2 PHPoozy
сделал бы чтоли перебор страниц ..
а то в чём прикол собирать с 1 страницы то?

gisTy
07.12.2008, 06:51
простой-то он простой.. но будет очень многоповторяющихся мыл...

PHPoozy
07.12.2008, 06:54
<?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");
?>

сортировщик для базы =)
---------------------------------
собственно и все! и думаю этого хватит для большого хека

PHPoozy
07.12.2008, 07:02
бля пиздец друзья! извините за нехуевую ошипку,

gisTy
07.12.2008, 17:03
ну вот уже 700к собрано насобирал...(=

Звеpь
09.12.2008, 07:56
пошол собирать базу себе;)

sa~
09.12.2008, 14:50
простой-то он простой.. но будет очень многоповторяющихся мыл...
Есть много программ которые убивают double