1. Artigoo.com
  2. »
  3. Cómo se hace y Educación
  4. »
  5. Manuales y Guías
  6. »
  7. Crear un web crawler con perl. Paso 1.

Crear un web crawler con perl. Paso 1.

Bueno, esta guia va orientada a programadores que se inicien en la creacion de web crawlers, spiders, etc.
Como en mi forma de verlo, perl es el mejor lenguaje de programacion para lograr un crawler rapida y facilmente, me decidi a hacer esta mini-guia basada en perl.

Paso 1: analizar el html de la pagina.

¿Como podriamos, sin analizar manualmente el html , llegar a analizarlo de forma automatica con nuestro codigo ?

El objetivo de esto es encontrar lo que buscamos, es decir, si yo busco un patron que me muestre CUANDO y DONDE aparece la informacion que necesito, obtendre rapidamente la expresion regular para lograrlo.

Imaginemos la siguiente situacion:

un cliente nos pide buscar todos los numeros de telefono y nombres de las personas que aparecen en un listado.

Para obtener esos datos, debemos buscar primero un nombre, y ubicar ese nombre en un contexto de etiquetas especial. Digamos que el codigo en el que estan esos datos se ve asi: 

<div class="personas"><p class="nombreytelefono">Nombre: <strong>Romina Suarez</strong><br />Telefono: <strong>3723823</strong></p></div>

Debemos encontrar entonces la expresion regular que situe ese patron en el total del codigo html.

La expresion correcta, o al menos la que yo usaria es:

<div class="personas"><p class="nombreytelefono>Nombre: <strong>([^>]+)</strong><br />Telefono: <strong>([^>]+)</strong></p></div>

 

La parte verdaderamente util, es lo que se encuentra entre <strong></strong>, ya que son los datos que buscamos, pero si solo nos basaramos en buscar <strong>([^>]+)</strong> terminariamos probablamente obteniendo datos inutiles, ya que esta expresion solo busca algo que se encuentre entre las etiquetas strong, mientras que la otra, busca el div "personas" y datos del mismo para decidir si es correcto tomar esa informacion. Si no se cumpliera la expresion regular completa, esos datos no seran guardados. 

 

Comparte este Goo:


¿Tiene contenido inapropiado?

Comparte este goo con un amigo:

Comentarios:

  1. Escrito por Layn
    Fecha: 2009-09-15 21:50:53

    Uff, interesante goo, tengo que aputnarmelo para leerlo con calma. Yo siempre los he hecho con bash shell script, ya que soy mas de sistemas, pero tengo pendiente aprender con perl, que para expresiones regulares es lo mas potente según he escuchado.

  2. Escrito por Fordummies
    Fecha: 2010-01-26 00:34:56

    la verdad es muy copado perl. A mi me encanta, aunque me encargo de la programacion y no la administracion, por lo que mi enfoque no es el mismo que el de un sysadmin. La verdad, coomo estas usando scripting, perl te va a parecer super facil y divertido... yo me peleo con todo el mundo defendiendo el uso de perl para exp regulares :P jajaj.

    1. Deja tu comentario:

      Si quieres recibir un mail cuando alguien responda un comentario en este goo, marca esta casilla.