• Publicidad

Verificar una web tras un tiempo

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

Verificar una web tras un tiempo

Notapor BigBear » 2009-12-30 14:12 @633

Hola. Ando queriendo verificar el contenido de una página que ésta se redirecciona a otra en un momento.

Tengo prueba.htm:
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <title>Probando</title>
  2. <br>Simple movimiento</br>
  3. <meta http-equiv="refresh" content="0;URL=http:/127.0.0.1/saludo.htm">
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y el código de saludo.htm:
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <br>Bienvenido a mi web</br>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y mi programita Perl

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use LWP::UserAgent;
  2. use HTTP::Request;
  3. use LWP::Simple;
  4.  
  5. my $tor = "http://127.0.0.1/prueba.htm";
  6. my $ua = new LWP::UserAgent;
  7. $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12");
  8. my $http = new HTTP::Request GET =>$tor;
  9. my $rer = $ua->request($http);
  10. $ua->timeout(10);
  11. sleep 30;
  12. my $re = $rer->content();
  13. print $re;
  14. if ($re =~/Bienvenido a mi web/) {
  15.     print "OK";
  16. } else {
  17.     print "NO";
  18. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Lo que yo quiero es verificar si cuando entro a prueba.htm ésta tiene "Bienvenido a mi web"
después de un tiempo. ¿Cómo lo haría?
Última edición por explorer el 2009-12-30 19:18 @846, editado 1 vez en total
Razón: Estaban mal las comillas del primer html
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Verificar una web tras un tiempo

Notapor kidd » 2009-12-30 17:08 @756

Hola,

Tu código nunca va a hacer lo que tu quieres, debido a que el usuario es redirigido usando un meta-refresh, que es un parámetro que le indica al navegador que redirija a esa página después de 'x' segundos.

Al tu leer la página con LWP vas a recibir el contenido y ya. Nunca va a seguir la instrucción porque nunca le dices que lo haga.

Si quieres que funcione entonces deberás de usar expresiones regulares para leer el contenido de la página que estás leyendo, y buscar si existe un tag como este, leer su URL y entonces cargar el nuevo URL.

En PerlMonks hay una solución de un usuario que quería comprobar su redirecciones con Perl, me parece que el código te vendría bien a ti:
http://www.perlmonks.org/?node_id=447314

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Verificar una web tras un tiempo

Notapor explorer » 2009-12-30 19:29 @854

Murdoc Rush escribiste:Lo que yo quiero es verificar si cuando entro a prueba.htm ésta tiene "Bienvenido a mi web" después de un tiempo. ¿Cómo lo haría?

Cuando solicitas una página al servidor web, éste te la da.

Lo que hagas con ella depende de ti. Eso quiere decir que si quieres imitar el proceso del refrescado, debes hacer por ti mismo la carga de la página saludo.htm. Eso es lo que viene en el código de perlmonks.org que te ha pasado kidd.
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


Volver a Básico

¿Quién está conectado?

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