• Publicidad

Dudas con HTML::Parser

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: Dudas con HTML::Parser

Notapor explorer » 2010-04-03 15:40 @694

Con estas líneas te quedas con las que empiezan con un número más un punto, eliminando la primera y última parte del texto no interesante.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $string =~ s/^.*?(?=1\.)//;
  2. $string =~ s/(\d+\.)/\n$1/g;
  3. $string =~ s/Real Academia.*$//;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: Dudas con HTML::Parser

Notapor erv-Z » 2010-04-03 16:18 @721

Bueno, yo también quería jugar xD, la arreglé un poco más.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #!/usr/bin/perl
  3.  
  4. use warnings;
  5. use strict;
  6. use WWW::Mechanize;
  7. my $mech = WWW::Mechanize->new();
  8. $mech->get("http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=abyecto");
  9. my $string = $mech->content(format => "text");
  10. binmode STDOUT, ":encoding(UTF-8)";
  11. $string =~ s/\s{3,3}//g;
  12. $string =~ s/\s{2,2}/ /g;
  13. $string =~ s/(\d+\.)/\n\n$1/g;
  14. $string =~ s/(Real\s?)/\n\n$1/g;
  15. print "$string\n";
  16.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Real Academia Española. Diccionario Usual. REAL ACADEMIA ESPAÑOLA DICCIONARIO DE LA LENGUA ESPAÑOLA - Vigésima segunda ediciónabyecto, ta. (Del lat. abiectus, part. pas. de abiicĕre, rebajar, envilecer).

1. adj. Despreciable, vil en extremo.

2. adj. desus. humillado (‖ abatido en el orgullo).

Real Academia Española © Todos los derechos reservados
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Dudas con HTML::Parser

Notapor explorer » 2010-04-03 17:48 @783

¡je,je,je!

Al final, queda al mínimo...
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use feature 'say';
  3. use open 'locale';
  4. use LWP::Simple;
  5.  
  6. my $rae = get("http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=abyecto");
  7.  
  8. while ($rae =~ m/name="[\d_]+"> (.*?) <\/p/smgix) {
  9.     $desc = $1;
  10.  
  11.     # Quitar las marcas HTML
  12.     $desc =~ s/<.*?>//gsm;
  13.  
  14.     # Quitar los espacios a los lados
  15.     $desc =~ s/^\s+//sm;
  16.     $desc =~ s/\s+$//sm;
  17.  
  18.     # Quitar espacios excesivos
  19.     $desc =~ s/\s+/ /gsm;
  20.  
  21.     say $desc;
  22. }
  23.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
abyecto, ta.
1. adj. Despreciable, vil en extremo.
2. adj. desus. humillado (‖ abatido en el orgullo).
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Dudas con HTML::Parser

Notapor erv-Z » 2010-04-03 17:54 @788

¿Para qué sirve el operador de opción /x y /m?
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Dudas con HTML::Parser

Notapor Leo_Gutierrez » 2010-04-03 18:30 @812

Según mi libro esto:

m : Determina que, si la cadena tiene algún carácter de salto de línea o retorno de carro, los operadores ^ y $ busquen desde el principio y el final de la cadena, en lugar de las líneas individuales.

x : Permite usar espacios en blanco en la expresión para que quede más clara.

Gracias por las respuestas, voy a ver si puedo ponerle interfaz gráfica.
Leo_Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 91
Registrado: 2008-08-20 23:38 @026

Re: Dudas con HTML::Parser

Notapor erv-Z » 2010-04-03 18:32 @813

Gracias, ya entendí, muy útiles por cierto.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Dudas con HTML::Parser

Notapor explorer » 2010-04-03 20:25 @892

Al final, con LWP::Simple, queda más simple :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Dudas con HTML::Parser

Notapor Leo_Gutierrez » 2010-04-03 20:49 @909

Estoy estudiando a Gtk2, para ver si le puedo incorporar una interfaz.

Quiero que quede algo así:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. perl script.pl --dump "palabra" 

Ese sería solo para ver en la consola.

Y el otro así:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. perl script.pl --interactive 


Para iniciar en modo gráfico, claro que tendría que incorporar getopt() para procesar las banderas.

Pero en fin, hay trabajo por hacer, porque no tengo mucha experiencia ni con Perl ni con Gtk2.

Una pregunta sobre el foro, ¿cómo puedo cambiar el nombre de mi usuario?
Leo_Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 91
Registrado: 2008-08-20 23:38 @026

Re: Dudas con HTML::Parser

Notapor erv-Z » 2010-04-03 21:04 @919

Creo que no lo podemos cambiar, los que lo pueden hacer son explorer y kidd.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Dudas con HTML::Parser

Notapor Leo_Gutierrez » 2010-04-04 03:04 @169

Tengo una duda con el uso Gtk2, ya tengo todo listo, pero tengo un problema. Este es mi código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;
  4. use WWW::Mechanize;
  5. use Gtk2 '-init';
  6. use constant TRUE => 1;
  7. use constant FALSE => 0;
  8.  
  9. my $window = Gtk2::Window->new('toplevel'); # Ventana principal.
  10. $window->set_border_width(100); # Cambiamos el tamaño.
  11. $window->signal_connect(destroy => sub{Gtk2->main_quit});
  12.  
  13. my $label = Gtk2::Label->new("RAE Search.");    # Mensaje.
  14. my $button = Gtk2::Button->new("Buscar");       # Botón buscar.
  15. my $vbox = Gtk2::VBox->new(5, FALSE);   # VBox para agrupar los widgets.
  16. $vbox->add($label);     # Agregamos $label al VBox.
  17. $vbox->add($button);    # Ídem.
  18. my $dir_entry = Gtk2::Entry->new;       # Entrada de texto.
  19. $dir_entry->set_text("");       # Cambiamos el texto del $dir_entry.
  20. # Boton que da la salida, put atention here!    
  21. $vbox->pack_start($dir_entry, FALSE, FALSE, FALSE);
  22. my $label_mensaje = Gtk2::Label->new("Esto debe actualizarse con lo que se capture de la caja de texto, pero NO lo hace.");
  23. my $rae = " ";
  24. $button->signal_connect(clicked => sub
  25.         {
  26.                 $rae = $dir_entry->get_text;
  27.                 print "$rae\n";
  28.                 # Se supone que debería actualizarse el label con lo capturado, pero no lo hace.
  29.                 $label_mensaje = Gtk2::Label->new($rae);
  30.         }
  31. );
  32. print "Capturada : $rae\n";     # Aquí no se captura nada.
  33. $vbox->add($label_mensaje);
  34. $window->add($vbox);
  35. $window->show_all;
  36.  
  37. Gtk2->main;
  38.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Aquí les dejo la imagen:
Imagen

Es decir, el label que está debajo de la entrada de texto debe ir variando conforme a lo que el usuario me dé. Si varía quiere decir que ya lo puedo procesar, hacer las búsquedas en la RAE.

Llevo varias horas intentando y aún no lo consigo, si alguien pudiera ayudarme, aunque sea con ideas.

Saludos y gracias de antemano.
Leo_Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 91
Registrado: 2008-08-20 23:38 @026

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 49 invitados