Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: парсинг  (Прочитано 9112 раз)
0 Пользователей и 1 Гость смотрят эту тему.
rnone
Гость
« : 07-08-2010 01:12 » 

Помогите реализовать

Нужно парсить меилы со страниц
а сами страницы в файле, т.е не знаю как реализовать заход на страницы из файла..
если кто то может продэманстрируйтэ !)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 07-08-2010 21:58 » 

Ничего смешного в незнании основ нет. Чем скорее ты поймешь, что пишешь полную чушь и займешься изучением, чем лучше.

Доводить до ума тут нечего. Да, есть один цикл чтения урлов из файла. И что? Где логика?

Ответь на мой "принципиальный" вопрос в моем предыдущем посте. Просто так писать какой-то скрипт - это время и скучно. Мне интереснее поделиться знаниями, а там глядишь - и ты меня чему-нибудь научишь.

Кстати, форматируй код - это обязательно для профессионального роста.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
rnone
Гость
« Ответ #8 : 07-08-2010 22:44 » 

ну тут чего помочь что ли не кому...(
три раза написал что мне надо...и показал что я могу, неужели нельзя немного подправить мой быдло код...говорю же что  буду учить и на это надо время, а скрипт нужен сейчас...
то что я почти языка не знаю, это я думал итак очевидно..
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #10 : 09-08-2010 06:14 » 

Ромка сдался Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 09-08-2010 06:27 » 

Макс, ну так офигеешь с ним общаться: постов не читает, голову не включает. Какая разница, умеет или не умеет программировать - голова везде нужна.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines