Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как блокировать вывод гиперссылки ? оставив ее значение 
:(
    Опции темы
ask
Дата 27.5.2006, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



Как блокировать вывод гиперссылки, оставив ее значение?

Вот текст алгоритма:

open F,"abc.txt" or die "Can not open input file ABC.TXT";
open T,">result.txt" or die "Can not open output file RESULT.TXT";
   
while(<F>){
  chomp;
  next if /^$/;
  sleep(1);
  $url=$_;
A:{
  `wget -q -O index.html http://nic.ru/whois/?domain=$url`;
    open FF,"index.html" or die "Can not open file from URL $url";
    $str=join "",<FF>;
    $str =~ s/\&nbsp;//g;
    close FF;
   }

   if($str =~ "free"){
    ($type) = $str =~ /type:\ *(.*)\ *\</;
    ($registrar) = $str =~ /registrar:\ *(.*)\ *\</;
    ($person) = $str =~ /person:\ *(.*)\ *\</;
    ($ns1,$ns2) = $str =~ /nserver:\ *(.*)\ *\<(.*)/;
    ($ns2)= $str =~ /nserver:\ *(.*)\ *\</;
    ($created) = $str =~ /created:\ *(.*)\ *\</;
    ($free) = $str =~ /freeing date(.*)\</;
    ($paid) = $str =~ /paid\-till:\ *(.*)\ *\</;
    $s="$url $registrar\n";
    print "$s";
    print T $s;
    next;
  }
}

вот результат:

accounts.ru <a href="http://www.ripn.net/nic/whois/whois.cgi?RUCENTER-REG-RIPN" target="_blank">RUCENTER-REG-RIPN</a>

а нужен:

accounts.ru RUCENTER-REG-RIPN

 smile 
PS Я не программист, поэтому, кого не затруднит, подскажите как можно доходчивей. (какую команду куда вставить)
  smile   


 
PM MAIL   Вверх
nitr
Дата 28.5.2006, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



регулярные выражения smile в помощь тебе

вот "страшный" скрипт... быстренько написал... доработай и пользуйся в удовольствие:
check.pl
Код
#!/usr/bin/perl -w
use LWP::UserAgent;

my $in_name = $ARGV[0] || die 'Usage: perl check.pl input_file output_file';
my $out_name = $ARGV[1] || die 'Usage: perl check.pl input_file output_file';
my $ua = LWP::UserAgent->new;
open my $in, "<$in_name" or die "Error - $!";
open my $out, ">$out_name" or die "Error - $!";
while(my $url = <$in>) {
  my @cont = split /\n/, $ua->get('http://nic.ru/whois/?domain='.$url)->content;  
  foreach (@cont) {
    $_ =~ s/&nbsp;//g;
    $_ =~ s/<.+?>//g;
    print $out $1." | " if $_ =~ /(domain:.+)/;
    print $out $1." | " if $_ =~ /(type:.+)/;
    print $out $1." | " if $_ =~ /(descr:.+)/;
    print $out $1." | " if $_ =~ /(admin-o:.+)/;
    print $out $1." | " if $_ =~ /(nserver:.+)/;
    print $out $1." | " if $_ =~ /(created:.+)/;
    print $out $1." | " if $_ =~ /(state:.+)/;
    print $out $1." | " if $_ =~ /(changed:.+)/;
    print $out $1." | " if $_ =~ /(mnt-by:.+)/;
    print $out $1." | " if $_ =~ /(source:.+)/;   
  }
  print $out "\n\n";
}
close $out;
close $in;


in_file - in
Код
vingrad.ru
perl.ru


использовал perl ./check.pl in out

out
Цитата
| domain:  VINGRAD.RU | type:   CORPORATE | nserver:  ns9.eurohoster.net. | nserver:  ns2.cm-centre.com. | state:   REGISTERED, DELEGATED | created:  2000.09.13 | source:  TC-RIPN | 

| domain:  PERL.RU | type:   CORPORATE | nserver:  ns1.perl.ru. 195.68.136.2 | nserver:  ns2.perl.ru. 195.42.160.112 | state:   REGISTERED, NOT DELEGATED | created:  1999.10.14 | source:  TC-RIPN |
 


Но именно тебе можно так:
перед выводом 
accounts.ru <a href="http://www.ripn.net/nic/whois/whois.cgi?RUCENTER-REG-RIPN" target="_blank">RUCENTER-REG-RIPN</a>

вставь:
=~ s/<a.+?>(.+)<\/a>/$1/i;  

Это сообщение отредактировал(а) nitr - 28.5.2006, 01:52


--------------------
PM   Вверх
ask
Дата 28.5.2006, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



Цитата

Но именно тебе можно так:
перед выводом 
accounts.ru <a href="http://www.ripn.net/nic/whois/whois.cgi?RUCENTER-REG-RIPN" target="_blank">RUCENTER-REG-RIPN</a>

вставь:
=~ s/<a.+?>(.+)<\/a>/$1/i;  


Спасибо.
Упражнения со вставкой "перед выводом вставь "=~ s/<a.+?>(.+)<\/a>/$1/i;" приводят к отказу работы проги.
А вот прям в текст можно примером?  smile 
......
($paid) = $str =~ /paid\-till:\ *(.*)\ *\</;
    $s="$url $registrar\n";
    ......
     =~ s/<a.+?>(.+)<\/a>/$1/i;  
    .....
    print "$s";
    print T $s;
......
 smile 
 
PM MAIL   Вверх
nitr
Дата 29.5.2006, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



гггг, только для тебя ;)
Код
...
$s = "$url $registrar\n";
$s =~ s/<a.+?>(.+)<\/a>/$1/i;  
...
 


--------------------
PM   Вверх
ask
Дата 29.5.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



Ага, значит прописать эти свойства переменной $s.
Отлично, все работает. 
nitr, Спасибо!
 smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.