Выдрать email"ы

Discussion in 'Болталка' started by optimizet, 13 Sep 2011.

  1. optimizet

    optimizet New Member

    Joined:
    9 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Имеется большое количество емайл баз, в текстовых документах.
    Некоторые имеют формат вида: email:pass (у некоторых вместо двоеточие стоит точка с запятой)
    Некоторые просто: email

    Нужно выдрать адреса определенного домена.

    Что бы в итоге вышло вида:
    [email protected]

    Подскажите софтину, буду благодарен до старости!
     
    #1 optimizet, 13 Sep 2011
    Last edited: 13 Sep 2011
  2. Antonio Falkone

    Antonio Falkone Active Member

    Joined:
    23 Dec 2009
    Messages:
    233
    Likes Received:
    163
    Reputations:
    77
    http://forum.antichat.ru/showthread.php?t=276109
     
  3. optimizet

    optimizet New Member

    Joined:
    9 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Это не то, мне нужно выдрать именно емайлы определенного домена.
     
  4. Antonio Falkone

    Antonio Falkone Active Member

    Joined:
    23 Dec 2009
    Messages:
    233
    Likes Received:
    163
    Reputations:
    77
    Сначала так, затем http://forum.antichat.ru/thread121052.html
    Либо http://forum.antichat.ru/threadnav167280-1-10.html
     
  5. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    PHP:
    <?php 

    $text 
    =file_get_contents('my.txt'); 

    preg_match_all('/[\.\-_A-Za-z0-9]+?@(list|mail|inbox|bk).ru\:(.*)/'$text$out); // здесь будут майловские поддомены выдираться, если не майл то как подкорректировать- думаю поймеш

    $arr $out[0]; 
     
    $result array_unique($arr); 
    foreach(
    $result as $value)   
      {   
         echo 
    "$value <br />";   
      }  

    ?>
    P.S. в регулярке после @ ставь поддомен который тебе нужен в каменте я написал что скрипт настроен на майл, ну а тебе примерно так

    PHP:
    preg_match_all('/[\.\-_A-Za-z0-9][email protected]\:(.*)/'$text$out);
     
    #5 Kusto, 13 Sep 2011
    Last edited: 13 Sep 2011
  6. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Если нужно пройтись по всем базам:
    PHP:
    <?php  
    set_time_limit
    (0);
    $dir "C:\WebServers\home\localhost\www\emailsDirectory"// путь до директории с базой мэйлов     
    if ($dh opendir($dir))    
    {  
        while ((
    $file readdir($dh)) !== false)    
        {    
            if (
    $file !== '.' AND $file !== '..')    
            {    
                
    $current_file "{$dir}\\{$file}";    
                if (
    is_file($current_file))    
                {    
                    
    $file file_get_contents($current_file);
                    
    preg_match_all('/[\.\-_A-Za-z0-9][email protected]/'$file$out);
                    foreach (
    $out[0] as $line)
                    {
                        
    $fp fopen("result.txt""a"); //полученные мейлы будут в result.txt
                        
    fwrite($fp$line."\n");
                        
    fclose($fp);
                    }
                }  
            }    
        }    
    }  
    ?>
     
  7. optimizet

    optimizet New Member

    Joined:
    9 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Всем спасибо :)

    Сейчас испробую.
     
  8. optimizet

    optimizet New Member

    Joined:
    9 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Не получается.
    Горе с пополам объединил все текстовики в один, с помощью коллектора, в итоге весит 700 метров, и в начале может я не правильно выразился, нужно получить майлы определенного домена, например .ru

    Запускаю скрипт, выходит ошибка, мол не смог открыть: Warning: file_get_contents(my.txt) [function.file-get-contents]: failed to open stream: No such file or directory in Z:\home\localhost\www\index.php on line 3

    Из соседней темы пробовал вставлять в скрипт, но ни чего не получается.
     
  9. optimizet

    optimizet New Member

    Joined:
    9 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Немного скорректировал скрипт Skofield"а но выходит ошибка: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 742477144 bytes) in Z:\home\localhost\www\index.php on line 13
     
  10. optimizet

    optimizet New Member

    Joined:
    9 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Kusto же написал что, должно быть в my.txt т.е. в одном текстовике все :)
    Щас из двух выше написанных скриптов собрал один, текстовики сделал по 11 метров, вроде бы все заработало.


    PHP:
    <?php     set_time_limit(0);   $dir "C:\WebServers\home\localhost\www\emailsDirectory"// путь до директории с базой мэйлов        if ($dh = opendir($dir))       {         while (($file = readdir($dh)) !== false)           {               if ($file !== '.' AND $file !== '..')               {                   $current_file = "{$dir}\\{$file}";                   if (is_file($current_file))                   {                       $file = file_get_contents($current_file);                   preg_match_all('/[\.\-_A-Za-z0-9]+?@(.*)\.cz/', $file, $out);                   foreach ($out[0] as $line)                   {                       $fp = fopen("result.txt", "a"); //полученные мейлы будут в result.txt                       fwrite($fp, $line."\n");                       fclose($fp);                   }               }             }           }       }     ?>
     
    #10 optimizet, 13 Sep 2011
    Last edited: 13 Sep 2011
  11. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Зачем ты объединил все файлы в один? Я ведь написал скрипт, который проходит по всем файлам в определенной папке.
     
  12. optimizet

    optimizet New Member

    Joined:
    9 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Спасибо большое, все гуд уже :)