| 
			| 
					
						| rnone 
								Гость
 | 
								|  | «  : 07-08-2010 01:12 »  |  | 
 
 Помогите реализовать
 Нужно парсить меилы со страниц
 а сами страницы в файле, т.е не знаю как реализовать заход на страницы из файла..
 если кто то может продэманстрируйтэ !)
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #1 : 07-08-2010 03:46 »  |  | 
 
 Для начала возьми вот здесь полезную книгу: https://club.shelek.ru/viewfiles.php?id=19 "заходить" - это сложно сказано.   Нужно открыть директорию и в цикле перебирать файлы, проверяя, подходят ли их имена. Если имя подошло - открыть этот файл, прочесть в буфер, закрыть. Далее работать поиском с использованием регулярных выражений. Странная задача. Спам-базы составляем? Пустое дело! |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| rnone 
								Гость
 | 
								|  | « Ответ #2 : 07-08-2010 10:22 »  |  | 
 
 Нет я не спамер) Даща увидите что и  не кодер) в общем  вот в моё представление #!/usr/bin/perl -wuse strict;
 use LWP::Simple;
 
 open(FILE,"urls.txt")or die;
 while ($i=<FILE>) {
 $i++;
 my @url="$i"
 }
 my $content = getprint(@url);
 
ну тут ясно понятно код не рабочий...это как я представляю чтение сылок из файла Добавлено через 5 часов, 23 минуты и 32 секунды: open(FILE, "urls.txt")or die;while ($i = <FILE>) {
 if ($i=~/http:/) {
 $i++;
 }
 }
такая проверка подойдёт ?Добавлено через 5 часов, 5 минут и 59 секунд: извините уж за бардак, не знаю как у вас тут редактировать месаги. #!/usr/bin/perl -wuse WWW::Mechanize;
 
 my $mech = WWW::Mechanize->new();
 $mech->get('http://www.site.ru/');
 my @links = $mech-> find(mail=>/[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}/);
 for my $link (@links) {
 open (F, ">good.txt");
 print $link->url()."\n";
 close(F);
 }
только как вместо http:// www. site.ru подставлять урлы из файла ? и првоерять их регуляркой.. |  
						| 
								|  |  
								| « Последнее редактирование: 07-08-2010 15:46 от rnone » |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #3 : 07-08-2010 14:31 »  |  | 
 
 Редактировать пока нельзя. Потом откроется. 1. Учитывая гибкость HTML, лучше считать весь файл, а не искать построчно. my ($fd, $buffer);
 if (open($fd, "<filename"))
 {
 $buffer = join('', <$fd>);
 close($fd);
 // тут должен быть поиск
 }
 
2. Если ты ищешь почтовые ящики, то причем тут http? Наверно таки mailto. 3. Для такой примитивной задачи использовать парсер - изврат. IMHO, конечно. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| rnone 
								Гость
 | 
								|  | « Ответ #4 : 07-08-2010 15:02 »  |  | 
 
 Я вообще не понял, что этот код делает...Мне нужно, чтобы из текстового файла брались уже лежащий там урлы сайтов, потом по этим урлам шел парсинг мейлов...
 
 Тот кусок кода выше, я так понял, типа урлы запихивает в $fd, а там, где написано поиск — поиск мейлов? Как, если выше о них ни слова...
 
 Добавлено через 39 секунд:
 Кстати, перл за 24 часа — такая хрень, господи....
 |  
						| 
								|  |  
								| « Последнее редактирование: 07-08-2010 15:44 от rnone » |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #5 : 07-08-2010 15:40 »  |  | 
 
 кстате перл за 24 часа, такая хрень господи....
 Какие еще 24 часа? Такое только шарлатаны могут написать. Я тебе дал ссылку - там есть нормальная книга в 1150 страниц.  я воопще нипонял что этот код делает..мне нужно, что бы из текстового файла брались уже лежащий там урлы сайтов, потом по этим урлам шел парсинг мейлов...
 
 тот кусок кода выше, я так понял типа урлы запихивает в $fd
 а там где написано поиск, поиск мейлов ? как...если выше о них ни слова...
 
 Ничего ты не понял. Потому, что языка не знаешь. Но хуже другое - не умеешь составлять алгоритмы. Рекомендую начать с изучения основ программирования. Кстати, на счет языка не программирования: можешь писать без таких грубых ошибок? Принципиальный вопрос: ты разовую задачу взялся решать или будешь изучать Перл? |  
						| 
								|  |  
								| « Последнее редактирование: 07-08-2010 15:48 от RXL » |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| rnone 
								Гость
 | 
								|  | « Ответ #6 : 07-08-2010 19:57 »  |  | 
 
 Какие еще 24 часа? Такое только шарлатаны могут написать. Я тебе дал ссылку - там есть нормальная книга в 1150 страниц.Есть такая книга, я думал ты знаешь...  Эта ссылка не работает, но всё же нашел книгу скачал.  Изучать буду...со своими то способностями ! думаю долго буду... но пока я буду писать этот скрипт на основе других похожих, т.к он нужен сейчас.Добавлено через 1 час, 14 минут и 41 секунду: #!/usr/bin/perl
 use LWP::UserAgent;
 my $u = new LWP::UserAgent;
 
 open (FILE, '<', 'urls.txt') or die $!;
 while(<FILE>)
 {
 chomp;
 my $page = $u->get($_)->content;
 }
 close FILE;
 open FILE, '<', 'good.txt';
 if ($u =~ /[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}/) {
 print FILE ;
 close(FILE);
 }
в общем сел вроде как обдумал, собрал свои куски постов в единый, но почему то записи мейлов good так и нет..доведите до ума, а то столько возиться уже смешно (= |  
						| 
								|  |  
								| « Последнее редактирование: 07-08-2010 21:11 от rnone » |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #7 : 07-08-2010 21:58 »  |  | 
 
 Ничего смешного в незнании основ нет. Чем скорее ты поймешь, что пишешь полную чушь и займешься изучением, чем лучше.
 Доводить до ума тут нечего. Да, есть один цикл чтения урлов из файла. И что? Где логика?
 
 Ответь на мой "принципиальный" вопрос в моем предыдущем посте. Просто так писать какой-то скрипт - это время и скучно. Мне интереснее поделиться знаниями, а там глядишь - и ты меня чему-нибудь научишь.
 
 Кстати, форматируй код - это обязательно для профессионального роста.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| rnone 
								Гость
 | 
								|  | « Ответ #8 : 07-08-2010 22:44 »  |  | 
 
 ну тут чего помочь что ли не кому...(три раза написал что мне надо...и показал что я могу, неужели нельзя немного подправить мой быдло код...говорю же что  буду учить и на это надо время, а скрипт нужен сейчас...
 то что я почти языка не знаю, это я думал итак очевидно..
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #9 : 08-08-2010 12:35 »  |  | 
 
 Ты так пишешь, что понять тебя трудно. Учи русский! #!/usr/bin/perl
 use strict;
 use LWP::UserAgent;
 
 my ($fd, @emails, $ua);
 
 $ua = new LWP::UserAgent;
 open ($fd, '<', 'urls.txt') or die $!;
 
 while(<$fd>)
 {
 my $page;
 
 chomp;
 $page = $ua->get($_)->content();
 push @emails, $page =~ m/mailto:([-a-z0-9]+@(?:[-a-z0-9]+\.)+[-a-z0-9]+)/gis;
 }
 
 close $fd;
 
 print join("\n", @emails), "\n";
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| McZim | 
								|  | « Ответ #10 : 09-08-2010 06:14 »  |  | 
 
 Ромка сдался   |  
						| 
								|  |  
								|  |  Записан | 
 
 The CBO without stats is like a morning without coffee. (c) T.Kyte. |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #11 :  09-08-2010 06:27 »   |  | 
 
 Макс, ну так офигеешь с ним общаться: постов не читает, голову не включает. Какая разница, умеет или не умеет программировать - голова везде нужна. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	|  |