elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Perl Regular Expressions (Regex)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Perl Regular Expressions (Regex)  (Leído 3,088 veces)
¨°o.O (ßa¢Kg|姧) O.o°

Desconectado Desconectado

Mensajes: 32



Ver Perfil
Perl Regular Expressions (Regex)
« en: 5 Julio 2010, 20:40 pm »

Hola :)

Estoy haciendo un script en Perl para que haga un HTTP Post en una url, y cuando me logeo quiero cojer un trozo de texto y retocarlo para que quede concorde y no salgan todas las etiquetas del html etc..

El código que quiero cojer es este:

Código
  1.     <td class="tm"><b>AQUI QUIERO COJER ESTO1</b><br>
  2. Welcome back to your members area.<br><br>
  3. Your username here is <b>AQUI QUIERO COJER ESTO2</b>.<br>
  4.  
  5. <script language="javascript" type="text/javascript">

Por supuesto que es un trozo de código del DOM de la página.
En todo caso quiero cojer lo que hay dentro del AQUI QUIERO COJER ESTO1 y del AQUI QUIERO COJER ESTO2

PD: Llevo aquí 2h y no lo consigo :S

Aquí pongo todo mi script:

Código
  1. #!/usr/bin/perl
  2. #=======================================================================
  3. #
  4. #
  5. #  DESCRIPCIÓN:
  6. #
  7. #      OPTIONS:  ---
  8. #         BUGS:  ---
  9. #        NOTAS:  ---
  10. #      VERSION:  1.0
  11. #     CREADO:  Lunes 5 de julio del 2010
  12. #    REVISIÓN:  1
  13. #=======================================================================
  14.  
  15. use warnings;
  16. use strict;
  17. use WWW::Mechanize;
  18.  
  19.  
  20.    my $Explorador = WWW::Mechanize->new( agent => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624' ); #Constructor del explorador con un UserAgent falso.
  21.    $Explorador->get("file://home/alejandro/enter.php.html"); #Se procede a acceder a la dirección url para hacer el HTTP Post
  22.    $Explorador->field('username','Miuser'); # Busca el campo username y pone el usuario
  23.    $Explorador->field('password','Mipass');  # Busca el campo password y pone la contraseña
  24.    $Explorador->submit(); # Hace el HTTP POST
  25.  
  26.    print $Explorador->content();
  27.  
  28.    if($Explorador->content() =~ m"\s/<td class=\"tm\"><b>")
  29.       {
  30.  
  31.       }
  32.    else
  33.    {
  34.      die "Error: No se puede encontrar el nombre.\n¿Ha provado que su usuario y contraseña sean correctos?";
  35.     }



En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Perl Regular Expressions (Regex)
« Respuesta #1 en: 5 Julio 2010, 21:43 pm »

Bien, te doy una ayudita...

Código
  1. #!/usr/bin/perl -w
  2.  
  3. $cont = '     <td class="tm"><b>AQUI QUIERO COJER ESTO1</b><br>
  4. Welcome back to your members area.<br><br>
  5. Your username here is <b>AQUI QUIERO COJER ESTO2</b>.<br>
  6.  
  7. <script language="javascript" type="text/javascript">';
  8.  
  9. if($cont =~ m/m"><b>([\w\s]*?)<\//i){
  10. print $1, "\n";
  11. }
  12. if($cont =~ m/is\s<b>([\w\s]*?)</i){
  13. print $1, "\n";
  14. }
  15.  

Salida:
Código:
yoya@yoya-desktop:~/Escritorio$ perl a.pl
AQUI QUIERO COJER ESTO1
AQUI QUIERO COJER ESTO2

Osea, en vez de limpiar el texto, solo extraigo la parte que me interesa...

Si se lo adaptara, seria mas o meno asi:

Código
  1. #!/usr/bin/perl
  2. #=======================================================================
  3. #
  4. #
  5. #  DESCRIPCIÓN:
  6. #
  7. #      OPTIONS:  ---
  8. #         BUGS:  ---
  9. #        NOTAS:  ---
  10. #      VERSION:  1.0
  11. #     CREADO:  Lunes 5 de julio del 2010
  12. #    REVISIÓN:  1
  13. #=======================================================================
  14.  
  15. use warnings;
  16. use strict;
  17. use WWW::Mechanize;
  18.  
  19.  
  20.    my $Explorador = WWW::Mechanize->new( agent => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624' ); #Constructor del explorador con un UserAgent falso.
  21.    $Explorador->get("file://home/alejandro/enter.php.html"); #Se procede a acceder a la dirección url para hacer el HTTP Post
  22.    $Explorador->field('username','Miuser'); # Busca el campo username y pone el usuario
  23.    $Explorador->field('password','Mipass');  # Busca el campo password y pone la contraseña
  24.    $Explorador->submit(); # Hace el HTTP POST
  25.  
  26.  
  27.  
  28. if($Explorador =~ m/m"><b>([\w\s]*?)<\//i){
  29. print $1, "\n";
  30. }
  31. if($Explorador =~ m/is\s<b>([\w\s]*?)</i){
  32. print $1, "\n";
  33. }


En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Regex.Matcher y replaces.
Java
HeXmiT 1 2,685 Último mensaje 15 Enero 2011, 23:25 pm
por HeXmiT
RegEx
.NET (C#, VB.NET, ASP)
CH4ØZ 5 5,425 Último mensaje 16 Septiembre 2011, 00:21 am
por CH4ØZ
RegEx Buddy [Instalador y Portable] [Herramienta]
Programación Visual Basic
Elemental Code 0 4,824 Último mensaje 8 Octubre 2011, 18:54 pm
por Elemental Code
Qué son las Regular Expressions y cómo se utilizan
Noticias
wolfbcn 0 1,533 Último mensaje 23 Julio 2014, 19:04 pm
por wolfbcn
Es posible usar ( como expresion regular? c++ <regex>
Programación C/C++
statham 6 3,055 Último mensaje 4 Febrero 2019, 17:17 pm
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines