2011-09-26 15:47 @699 |
|
|
jacks
Perlero Frecuente
|
Registrado: 2011-04-05 11:14 @510 Mensajes: 148
|
|
|
Re: Comparar páginas Perl
|
Hola, buenas. Tengo una consulta. Estoy haciendo un bucle desde el cual cojo los links y los nombres de cada una de las empresas al que pertenece los links. Cuando genera el archivo .cache de cada uno de los links lo leo y lo muestro en pantalla. El problema es que si yo pongo manualmente el nombre del archivo sí lo encuentra y lo lee pero si lo hago usando un join() lo que ocurre es que no puede leerlo porque dice que no lo encuentra. He intentado hacer un chomp(), pero tampoco. ¿Alguien sabe por qué puede ser? Using perl Syntax Highlighting my $pal = join(".", $empresa,"cache");
my $archivo = read_file($pal);
|
2011-09-26 15:55 @705 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Comparar páginas Perl
|
¿Y no es mejor usar la interpolación? Using perl Syntax Highlighting my $pal = "$empresa.cache";
die "ERROR: No encuentro el fichero [$pal]: $!\n"
if not -e $pal;
my $archivo = read_file($pal);
_________________ JF^D Perl programming
|
2011-09-30 11:41 @528 |
|
|
jacks
Perlero Frecuente
|
Registrado: 2011-04-05 11:14 @510 Mensajes: 148
|
|
|
Re: Comparar páginas Perl
|
|
Hola. ¿Sabríais decirme si existe algún modo de saber con Perl si una dirección URL está activa o no?
|
2011-10-10 05:56 @289 |
|
|
jacks
Perlero Frecuente
|
Registrado: 2011-04-05 11:14 @510 Mensajes: 148
|
|
|
Re: Comparar páginas Perl
|
Hola, tengo un problema a la hora de generar los RSS. He añadido una nueva página y al script que genera los RSS; le añadido un nuevo patrón de búsqueda. El problema es que si lo ejecuto el programa introduciendo yo la URL lo genera bien con el patrón, pero si ejecuto el programa main y éste le pasa la URL es como si no reconoce ese patrón y no genera nada. El link sí que lo recoge el programa actualizar porque lo he comprobado con un print() pero no sé por qué no genera el .cache de esta manera. 
|
2011-10-18 03:37 @192 |
|
|
jacks
Perlero Frecuente
|
Registrado: 2011-04-05 11:14 @510 Mensajes: 148
|
|
|
Re: Comparar páginas Perl
|
Hola, quería saber qué es lo que estoy haciendo mal a la hora de sacar esta información. Quiero sacar lo que pone en la línea 57 (Monedero cuadrado y el link de su izquierda pero me saca mucho código HTML con este patrón que uso: Using perl Syntax Highlighting while ($html =~ m{.+?<tr>.+?<td width="42%" valign="top"><a class="links" href="(.+?)">(.+?)</a></td>}smg){
Using html4strict Syntax Highlighting <tr>
<td class="separador"> </td>
<td height="10">
<table width="85%" cellspacing="10" cellpadding="0" border="0" align="center">
<tr>
<td valign="top">
<table width="200" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF">
<tr>
<td class="tipo_producto"><div align="center">Elegance Q</div></td>
</tr>
<tr>
<td width="42%" valign="middle">
<table width="165" height="130" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF" align="center" class="bordefoto">
<tr>
<td><div align="center" class="texto_productos">
<img src="fotos/subc_19g.jpg" border="0" alt="">
</div></td>
</tr>
</table> </td>
</tr>
<tr>
<td valign="middle">
<table width="165" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF" align="center">
<tr>
<td height="5"></td>
</tr>
<tr>
<td width="42%" valign="top"><a class="links" href="listadoproductos.php?id=36">Monedero Cuadrado</a></td>
</tr>
</table> </td>
</tr>
</table> </td>
<td valign="top">
<table width="200" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF">
<tr>
<td class="tipo_producto"><div align="center">Elegance R</div></td>
</tr>
<tr>
|
2011-10-18 15:03 @668 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Comparar páginas Perl
|
Pues... a mí me funciona: Using perl Syntax Highlighting #!/usr/bin/perl
use Modern::Perl; # Somos modernos
use File::Slurp;
my $html = read_file('code_28221_1.txt');
while ($html =~ m{.+?<tr>.+?<td width="42%" valign="top"><a class="links" href="(.+?)">(.+?)</a></td>}smg) {
say "[$1]=>[$2]";
}
__END__
[listadoproductos.php?id=36]=>[Monedero Cuadrado]
De hecho, funciona con esta reducida: Using perl Syntax Highlighting while ($html =~ m{<td width="42%" valign="top"><a class="links" href="(.+?)">(.+?)<}smg) {
_________________ JF^D Perl programming
|
2011-11-29 18:11 @799 |
|
|
jacks
Perlero Frecuente
|
Registrado: 2011-04-05 11:14 @510 Mensajes: 148
|
|
|
Re: Comparar páginas Perl
|
|
¡Hola! ¿Hay alguna manera de hacer que un proceso pare al cabo de un cierto tiempo? Por ejemplo: un proceso de búsqueda en una página web, para generar los rss, pero tarda demasiado porque la página no existe. ¿Cómo puedo hacer que, por ejemplo, si tras pasar 1 minuto y no ha conseguido nada, pare y pase al siguiente proceso?
|
2011-11-29 18:20 @805 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Comparar páginas Perl
|
Definiendo un timeout para el objeto que se encarga de bajar la página. Depende de quién se encarga de hacerlo, pero, por ejemplo, mira en la sinopsis del módulo LWP::UserAgent, verás cómo define ese tiempo a solo 10 segundos.
_________________ JF^D Perl programming
|
2011-12-22 11:01 @501 |
|
|
jacks
Perlero Frecuente
|
Registrado: 2011-04-05 11:14 @510 Mensajes: 148
|
|
|
Re: Comparar páginas Perl
|
Hola. ¿Cómo puedo convertir el formato de esta fecha al formato de fecha de MySQL? Using perl Syntax Highlighting fecha => $self->getDateTime('19940203T141529Z'),
Using text Syntax Highlighting 'fecha' => 'Mon, 19 Sep 2011 16:01:44 GMT',
|
2011-12-23 05:48 @284 |
|
|
jacks
Perlero Frecuente
|
Registrado: 2011-04-05 11:14 @510 Mensajes: 148
|
|
|
Re: Comparar páginas Perl
|
|
Perdón, a 'Mon, 19 Sep 2011 16:01:44 GMT'.
|
2011-12-23 07:32 @356 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Comparar páginas Perl
|
Vale, ese formato es el indicado en el RFC 1123, también llamado HTTP Time. Se puede hacer de muchas formas. Aquí te pongo dos: Using perl Syntax Highlighting #!/usr/bin/perl
#
# Paso de fecha en formato RFC 1123 (HTTP) a fecha MySQL
# Joaquín Ferrero. 20111223 1324
#
use DateTime;
use DateTime::Format::HTTP;
use DateTime::Format::MySQL;
my $dt = DateTime::Format::HTTP->parse_datetime('Mon, 19 Sep 2011 16:01:44 GMT');
print DateTime::Format::MySQL->format_datetime($dt); # 2011-09-19 16:01:44
Using perl Syntax Highlighting #!/usr/bin/perl
#
# Paso de fecha en formato RFC 1123 (HTTP) a fecha MySQL
# Joaquín Ferrero. 20111223 1324
#
use HTTP::Date 'parse_date';
my $fecha = "Mon, 19 Sep 2011 16:01:44 GMT";
my $fecha2 = scalar parse_date( $fecha );
$fecha2 =~ s/\D+$//; # quitamos la zona horaria
print $fecha2; # 2011-09-19 16:01:44
De esta última versión, hay una variante, usando parse_date() en contexto lista, donde obtenemos todos los componentes de la fecha por separado: Using perl Syntax Highlighting #!/usr/bin/perl
#
# Paso de fecha en formato RFC 1123 (HTTP) a fecha MySQL
# Joaquín Ferrero. 20111223 1324
#
use HTTP::Date 'parse_date';
my $fecha = "Mon, 19 Sep 2011 16:01:44 GMT";
my @fecha2 = parse_date( $fecha );
my $fecha2 = sprintf "%02d-%02d-%02d %02d:%02d:%02d", @fecha2[0..5];
print $fecha2; # 2011-09-19 16:01:44
_________________ JF^D Perl programming
|
| Reglas del Foro |
No puedes abrir nuevos temas en este Foro No puedes responder a temas en este Foro No puedes editar tus mensajes en este Foro No puedes borrar tus mensajes en este Foro No puedes enviar adjuntos en este Foro
|
|
Socializa |
 |
|