Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Comprobar URL

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Mie Abr 09, 2008 3:54 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Comprobar URL Responder citando

Quería consultarles si alguien tiene algún script el cual tenga como función comprobar si una url existe.

Digamos tengo una web la cual es: localhost.net/Carpeta/situ.html

Bueno me gustaría mediante Perl poder comprobar si "Carpeta/situ.html" existe de ser así que me lo muestre con un print y sino está, también diciendo que no existe.

Estuve buscando info pero no encontré mucho.

Gracias.
Mensaje Mie Abr 09, 2008 4:05 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
Responder citando

bash:
perl -MLWP::Simple -le 'print "existe" if head("http://localhost.net/Carpeta/situ.html")'
Mensaje Mie Abr 09, 2008 4:09 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

Como siempre muchas gracias.
Mensaje Mie Abr 09, 2008 4:58 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

Estoy tratando de hacer el script pero no me está funcionando :s

Perl:

#!/usr/bin/perl

use LWP::Simple;

$host="http://www.localhost.net/";
chomp $host;

$web="index.php";
$web="situ.html";

for ($i=1;$i<3;$i++)
{

$cont=web.$i;
chomp $cont;
print "$cont\n";

$final=$host.$cont;

if (head($final)) {
print "$final existe";
 
 }
  }
Mensaje Mie Abr 09, 2008 6:09 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 487
Ubicación: Frente al monitor
Responder citando

Perl:
#!/usr/bin/env perl

use LWP::Simple;
use strict;

my $host = "http://www.localhost.net/";
my @web = qw(index.php situ.html);

foreach my $url ( @web ) {
    if ( head($host . $url) ) {
        print "$host$url existe\n";
    }
}
Mensaje Jue Abr 10, 2008 10:05 am
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

Gracias
Mensaje Mar Abr 15, 2008 11:01 am
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

Una consulta: ¿hay posibilidad de adaptar el código a los módulos:
Perl:
use HTTP::Request;
use LWP::UserAgent;
?
Como hice en el post:
http://perlenespanol.baboonsoftware.com/foro/viewtopic.php?t=2458

Ya que el resultado final del script no es el correcto, están faltando algunas URL a mostrar, y estaba pensando que utilizando estos módulos el resultado sea el correcto.

Estoy tratando de migrarlo pero no estoy teniendo un resultado exitoso.

Gracias
Mensaje Mar Abr 15, 2008 1:10 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
Responder citando

Si las operaciones son simples, lo mejor es usar el LWP::Simple. get() obtiene la página, mientras que head() nos puede indicar si existe, si ha cambiado...

El cambiar de módulos no siempre arregla el problema, pues quizás el problema esté en la lógica de nuestro programa.

Sería interesante ver a qué te refieres con lo de 'no es el correcto'.
Mensaje Mar Abr 15, 2008 1:30 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

A que el resultado no contiene todos los archivos que están.

Con una aplicación de mi trabajo que cumple casi la misma función veo que tengo 6 archivos, pero al probarlo con este script solo aparecen 4, digamos que me están faltando 2 al resultado.
Mensaje Mar Abr 15, 2008 2:58 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
Responder citando

Pues... vaya... no comprendo la relación de entre pedir dos páginas por medio de HTTP y lo de "obtener archivos"...

¿Te refieres a que esos archivos están descritos en la respuesta de alguno de los ficheros que te bajas por HTTP?
Mensaje Mar Abr 15, 2008 3:52 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

Claro: tengo que ver si existen esas url para luego aplicarles el script
http://perlenespanol.baboonsoftware.com/foro/viewtopic.php?t=2458
en busca de un string, por eso antes tengo que verificar si existe los archivos por url.
Mensaje Mar Abr 15, 2008 4:47 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

En el código que te mostré al final, antes de hacer la búsqueda del archivo primero verifica que haya sido éxitosa la petición, entonces ya está haciendo justo lo que quieres.
Mensaje Mar Abr 15, 2008 5:43 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

Kidd, ¿cuál?
Mensaje Mie Abr 16, 2008 6:44 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

http://perlenespanol.baboonsoftware.com/foro/viewtopic.php?t=2458#12209
Mensaje Mie Abr 16, 2008 10:05 am
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 143
Responder citando

Muchas gracias.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group