ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

парсер email
  #1  
Старый 28.09.2006, 20:17
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию парсер email

Привет всем. У меня тут такая задача. мне нужна написать парсер email на PHP. Вроде бы что сложного? Но я элементарно не могу придумать хотя бы нормальный алгоритм. У меня пока два незаконченных варианта.
1. Искать по тексту @ а затем идти до пробела или одинарной кавычки. Проблема в том как идти? Ведь нужно и слева и справа отследить знаки. Можно ли это сделать?
2. Регулярные выражения. Тут я вообще на стопоре сижу... Думаю искать по шаблону мыльник затем заносить в массив после всего писать в файл. Хотя тут тоже все очень размыто и к тому же я не умею еще с ними работать.
Если у кого то есть идеи по этому поводу, поделитесь пожалуйста. Заранее спасибо всем.
 
Ответить с цитированием

  #2  
Старый 28.09.2006, 20:37
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

НУ на регулярнике может так?!:
PHP код:
"/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2.3}/i" 
или
PHP код:
"/^[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,3}$/i" 
Ну а вобщем надо будет смотреть страницы, которые будуи парситься...
Вот... хех, вроде работает.
PHP код:
<? 
  
for($i=1;$i<3000;$i++){ 
    
$filename 'http://www.***.ru/center.php?chp=showorg&num='.$i
    echo 
$i.". "
    
$str file_get_contents($filename); 
    
preg_match_all('|href="mailto:([^"]*)"|is',$str,$out); 
    if(empty(
$out[1][0])) echo " no mail"
    else{ 
      echo 
" get ".$out[1][0]; 
      
fwrite($handler,$out[1][0]."\n"); 
    } 
    echo 
"\n"
  } 
  
fclose($handler); 
?>

Скачивает страницу в переменную, разбирает её спомощью регулярного выражения и если мыло нашёл на странице, то пишет в файл.

Последний раз редактировалось Dr.Check; 28.09.2006 в 21:27..
 
Ответить с цитированием

  #3  
Старый 28.09.2006, 21:57
Аватар для r0
r0
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
Провел на форуме:
1665310

Репутация: 488
По умолчанию

Скажем так:
1.Считываем содержимое файла в массив
2. Разбиваем массив до space (чтобы каждое слово было отделено от другого)
3. Убираем лишние пробелы, кавычки и т.п.
4. Согласно шаблону находим адресс+дамп в массив.
5. Вывод

Как уже показал Dr.Check, иди на php.net и прочти про preg_match_all().
 
Ответить с цитированием

  #4  
Старый 29.09.2006, 05:34
Аватар для KPOT_f!nd
KPOT_f!nd
Познавший АНТИЧАТ
Регистрация: 25.08.2006
Сообщений: 1,524
Провел на форуме:
3405508

Репутация: 1745


По умолчанию

Чел скачать мануал по Php. Выучи и потом сможешь написать такой скрипт!
 
Ответить с цитированием

  #5  
Старый 29.09.2006, 16:36
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

Всем спасибо. Только все дело в том что мне нужен был парсер из БД или тхт файла. Пытался изменить скрипт от Dr.Check под себя но что то я совсем расслабился. Буду дальше напрягать оставшиеся мозги.
 
Ответить с цитированием

  #6  
Старый 29.09.2006, 18:25
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

ну убираем цикл и меняем filename на имя текстового файла и всё собственно:
PHP код:
<?  
    $filename 
'file.txt';  
    echo 
$i.". ";  
    
$str file_get_contents($filename);  
    
preg_match_all('|href="mailto:([^"]*)"|is',$str,$out);  
    if(empty(
$out[1][0])) echo " no mail";  
    else{  
      echo 
" get ".$out[1][0];  
      
fwrite($handler,$out[1][0]."\n");  
    }  
    echo 
"\n";  
  
fclose($handler); 
?>
Правда непонятно в каком виде там email ...
 
Ответить с цитированием

  #7  
Старый 30.09.2006, 18:53
Аватар для n4n0bit
n4n0bit
Познающий
Регистрация: 11.09.2006
Сообщений: 59
Провел на форуме:
70702

Репутация: 52
По умолчанию

blaga
толька сразу добивайся универсальности парсинга,б делай уклон не толька на mailto: но и прост на \w+@\w+\.\w+ т.е. на поиск @ и . между и после где идут буквы и цифры и знаки подчеркивания и еще тирэ, далее некоторые пишут типа domain[zz]mail[ss]ru тут тожу делай регесп. Еще сделай что бы твой скрипт скакал по сайту сам и на лету добовлял результ парсинга уже либо в файл либл еще куда.

Sбор ссылок:

1. получаем результат в виде готовых ссылок;
1.1 конектимся по етим ссылкам в цикле foreach, однавременно текущий урл заносим в качестве ключа в ХЕШ а значение ставим в '1' (уже проканектились), так поступаем со всеми ссылками 1-го результата;
1.2 парсим контент от конекта этих ссылок (1.1), заносим их в ХЕШ в качестве ключа, а значение устонавливаем в '0' (не конектились), причем уже включаем проверку на наличия уже существующих ключей.
2.0 Далее мы конектимся уже во 2й раз по ключам, значение которых выставлено в '0', опять потом проверяем контент на наличия сыылок,парсим их , проверям на наличия уже в хеше, добовляем.

Последний раз редактировалось n4n0bit; 01.10.2006 в 20:49..
 
Ответить с цитированием

  #8  
Старый 01.10.2006, 11:00
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

Кто нибудь видел бд например от phpBB? Там нету мейлто. Там только @ искать... Все равно всем спасибо...
 
Ответить с цитированием

  #9  
Старый 01.10.2006, 11:44
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

А вот скажи, нафиг, писать парсер для БД, если можно использовать для этих нужд phpMyAdmin??? Видео нитрекса посмотри. Он как раз там этим занимался.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Advanced Email Extractor Елена Сафонова E-Mail 1 04.07.2006 01:21
Парсер -dp- Болталка 3 08.06.2006 01:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ