Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Básico » Comparar páginas Perl Responder al tema
Nuevo tema


Página 10 de 10  [ 149 mensajes ]  Ir a página Anterior  1 ... 6, 7, 8, 9, 10
 
Nota 2011-09-19 14:13 @634
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Comparar páginas Perl
Claro, es que eso es lo que pone en el manual del módulo ¿no lo has leído? Devuelve el valor de la fecha actual.

Para obtener la fecha de publicación, no sé de dónde lo puedes sacar.

Por ejemplo, en uno de los RSS que uso a diario, aparece la marca

<pubDate>Mon, 19 Sep 2011 16:10:02 +0000</pubDate>

Es una posibilidad: analizar el código RSS para sacarlo. Quizás con XML::RSS se pueda sacar más fácilmente.

Cuestión de mirar la documentación.

_________________
JF^D Perl programming


Nota 2011-09-26 15:47 @699

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?

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. my $pal = join(".", $empresa,"cache");                          
  2.                              
  3. my $archivo = read_file($pal);


Nota 2011-09-26 15:55 @705
Avatar de Usuario
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?

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. my $pal = "$empresa.cache";
  2.  
  3. die "ERROR: No encuentro el fichero [$pal]: $!\n"
  4.     if not -e $pal;
  5.  
  6. my $archivo = read_file($pal);

_________________
JF^D Perl programming


Nota 2011-09-30 11:41 @528

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?


Nota 2011-09-30 16:53 @745
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Comparar páginas Perl
Una forma de saberlo sería haciendo un get() (del módulo LWP::Simple, por ejemplo). Si responde, es que el servidor donde se aloja está respondiendo. Pero esto no es seguro, porque puede darse el caso de que en ese momento el servidor esté caído o la conexión hasta ese servidor esté caída.

_________________
JF^D Perl programming


Nota 2011-10-10 05:56 @289

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. :?


Nota 2011-10-18 03:37 @192

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:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. while ($html =~ m{.+?<tr>.+?<td width="42%" valign="top"><a class="links" href="(.+?)">(.+?)</a></td>}smg){
  2.  

Syntax: [ Download ] [ Hide ]
Using html4strict Syntax Highlighting
  1.   <tr>
  2.  
  3.     <td class="separador">&nbsp;</td>
  4.  
  5.     <td height="10">
  6.  
  7.        
  8.  
  9.       <table width="85%" cellspacing="10" cellpadding="0" border="0" align="center">
  10.  
  11.         <tr>
  12.  
  13.                     <td valign="top">
  14.  
  15.                                                 <table width="200" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF">
  16.  
  17.                           <tr>
  18.  
  19.                             <td class="tipo_producto"><div align="center">Elegance Q</div></td>
  20.  
  21.                           </tr>
  22.  
  23.                           <tr>
  24.  
  25.                             <td width="42%" valign="middle">
  26.  
  27.                               <table width="165" height="130" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF" align="center" class="bordefoto">
  28.  
  29.                                         <tr>
  30.  
  31.                                   <td><div align="center" class="texto_productos">
  32.  
  33.                                                                           <img src="fotos/subc_19g.jpg" border="0" alt="">
  34.  
  35.                                                   </div></td>
  36.  
  37.                                 </tr>
  38.  
  39.                               </table>                      </td>
  40.  
  41.                           </tr>
  42.  
  43.                           <tr>
  44.  
  45.                                 <td valign="middle">
  46.  
  47.                                                                   <table width="165" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF" align="center">
  48.  
  49.                                         <tr>
  50.  
  51.                                           <td height="5"></td>
  52.  
  53.                                         </tr>
  54.  
  55.                                                                                 <tr>
  56.  
  57.                                                   <td width="42%" valign="top"><a class="links" href="listadoproductos.php?id=36">Monedero Cuadrado</a></td>
  58.  
  59.                                                 </tr>
  60.  
  61.                                                                               </table>                          </td>
  62.  
  63.                           </tr>
  64.  
  65.                         </table>            </td>
  66.  
  67.                         <td valign="top">
  68.  
  69.                                                 <table width="200" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF">
  70.  
  71.                           <tr>
  72.  
  73.                             <td class="tipo_producto"><div align="center">Elegance R</div></td>
  74.  
  75.                           </tr>
  76.  
  77.                           <tr>
  78.  


Nota 2011-10-18 15:03 @668
Avatar de Usuario
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:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use Modern::Perl;               # Somos modernos
  3. use File::Slurp;
  4.  
  5. my $html = read_file('code_28221_1.txt');
  6.  
  7. while ($html =~ m{.+?<tr>.+?<td width="42%" valign="top"><a class="links" href="(.+?)">(.+?)</a></td>}smg) {
  8.     say "[$1]=>[$2]";
  9. }
  10.                                                                          
  11. __END__
  12. [listadoproductos.php?id=36]=>[Monedero Cuadrado]
De hecho, funciona con esta reducida:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. while ($html =~ m{<td width="42%" valign="top"><a class="links" href="(.+?)">(.+?)<}smg) {

_________________
JF^D Perl programming


Nota 2011-11-29 18:11 @799

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?


Nota 2011-11-29 18:20 @805
Avatar de Usuario
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


Nota 2011-12-22 11:01 @501

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?


Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. fecha => $self->getDateTime('19940203T141529Z'),


Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
'fecha' => 'Mon, 19 Sep 2011 16:01:44 GMT',


Nota 2011-12-22 11:52 @536
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Comparar páginas Perl
¿A qué fecha te refieres?

¿A '19940203T141529Z', a 'Mon, 19 Sep 2011 16:01:44 GMT', o a la fecha almacenada en un objeto DateTime o de otra clase?

_________________
JF^D Perl programming


Nota 2011-12-23 05:48 @284

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'.


Nota 2011-12-23 07:32 @356
Avatar de Usuario
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:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. # Paso de fecha en formato RFC 1123 (HTTP) a fecha MySQL
  4. # Joaquín Ferrero. 20111223 1324
  5. #
  6. use DateTime;
  7. use DateTime::Format::HTTP;
  8. use DateTime::Format::MySQL;
  9.  
  10. my $dt = DateTime::Format::HTTP->parse_datetime('Mon, 19 Sep 2011 16:01:44 GMT');
  11.  
  12. print DateTime::Format::MySQL->format_datetime($dt);    # 2011-09-19 16:01:44

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. # Paso de fecha en formato RFC 1123 (HTTP) a fecha MySQL
  4. # Joaquín Ferrero. 20111223 1324
  5. #
  6. use HTTP::Date 'parse_date';
  7.  
  8. my $fecha = "Mon, 19 Sep 2011 16:01:44 GMT";
  9.  
  10. my $fecha2 = scalar parse_date( $fecha );
  11.  
  12. $fecha2 =~ s/\D+$//;                                    # quitamos la zona horaria
  13.  
  14. 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:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. # Paso de fecha en formato RFC 1123 (HTTP) a fecha MySQL
  4. # Joaquín Ferrero. 20111223 1324
  5. #
  6. use HTTP::Date 'parse_date';
  7.  
  8. my $fecha = "Mon, 19 Sep 2011 16:01:44 GMT";
  9.  
  10. my @fecha2 = parse_date( $fecha );
  11.  
  12. my $fecha2 = sprintf "%02d-%02d-%02d %02d:%02d:%02d", @fecha2[0..5];
  13.  
  14. print $fecha2;                      # 2011-09-19 16:01:44

_________________
JF^D Perl programming


Responder al tema  [ 149 mensajes ]  Ir a página Anterior  1 ... 6, 7, 8, 9, 10

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

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO