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 -w use 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 -w use 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 » |
|
Макс, ну так офигеешь с ним общаться: постов не читает, голову не включает. Какая разница, умеет или не умеет программировать - голова везде нужна.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|