Spider / Crawler

Lic. Ariel Garcia Reyes ariel en cfg.ausa.cu
Mar Jul 1 18:27:42 CEST 2008


ya estoy leyendo y documentandome!
en cuanto tenga algo se los hago llegar!
salu2
ariel

lasizoillo escribió:
> Buenas:
>
> 2008/6/30 Lic. Ariel Garcia Reyes <ariel en cfg.ausa.cu>:
>   
>> Estoy aprendiendo a programar en Python y mi meta por el momento es hacer un
>> buscador
>> necesito hacer un spider o crawler que indece sitios web en una db!
>>
>>     
>
> ¿La base de datos es relacional o simplemente una base de datos? Supongo que te
> refieres a lo segundo. Aunque una base de datos relacional no esta del
> todo mal para
> el crawler.
>
>   
>> alguien que me pueda orientar, dar concejos, ejemplos, algoritmos,
>> documentacion, experiencia!?
>>
>>     
>
> Empieza por lo que no tienes que hacer con el crawler[1]
>
> Una posible implementación del modulo que descarga datos lo tienes en
> un ejemplo de eventlet [2]
> aunque podrias hacer algo parecido con el modulo de la libreria
> estandar urllib. Como
> consejos: no descargues todas a la vez, usa un pool y ponle timeouts a
> los sockets para
> que una conexión que no funciona no te deje bloqueado el crawler.
>
> Ya sabas que páginas no tienes que descargarte y sabes descargar
> páginas. ¿Cuales?
> Tienes que buscar enlaces en las páginas que te descargas para obtener más
> páginas a procesar. Para procesar páginas está muy chulo
> beautifulsoup[3], aunque quizá
> para empezar te baste HTMLParser de la librería estandard. Si sólo vas a seguir
> enlaces HTMLParser es más que necesario.
>
> Ahora, usando una página de semilla podras recorrer el grafo de
> páginas conectadas a él.
> Pero todavía tienes que mirarte algunos algoritmos. Imaginate que caes
> en una página que
> tiene un calendario y vas recorriendo el siguiente mes hasta la
> eternidad. Necesitas un
> algoritmo de busqueda de parecidos para evitar este tipo de problemas.
> Con ese algoritmo
> podas el seguir haciendo un crawler.
>
> El tratar de detectar el tiempo que tardan en actualizarse las páginas
> te puede ser muy util.
>
> Hasta ahora, solo hemos tratado la recogida de información. No su
> tratamiento. Empecemos:
> - Usa un stemmer como snowball[4] para obtener las raices de las
> palabras. Te ayudará a
> aproximar rebeldes y rebelión. "rebeldes del 2 de Mayo" y "Rebelión
> del 2 de Mayo" deberian
> devolver la misma cosa.
> - Aunque quizá antes de usar el stemmer te interese ver en que idioma
> está la página[5]
> - Puedes ver algún buscador libre como xapian[6] para aprender de
> algunos algoritmos que usa.
> - Puedes buscar si hay microformatos[7] para ver cosas relevantes como
> eventos o direcciones.
> - ...
>
> No te vas a aburrir si te pones a hacer un buscador. Y si haces uno
> molón, por favor integralo
> con pyndexter[8]. Estaré encantado de usarlo y muy posiblemente la
> comunidad de python
> te lo agradecerá.
>
> [1] http://es.wikipedia.org/wiki/Est%C3%A1ndar_de_exclusi%C3%B3n_de_robots
> [2] http://wiki.secondlife.com/wiki/Eventlet/Examples
> [3] http://www.crummy.com/software/BeautifulSoup/
> [4] http://snowball.tartarus.org/
> [5] http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/326576
> [6] http://xapian.org/docs/intro_ir.html
> [7] http://microformats.org/
> [8] http://swapoff.org/pyndexter
>
>
> Un saludo:
>
> Javi
>
>
>   
>> salu2
>> ariel
>>
>> ___________
>>
>> Este mensaje ha sido analizado por Mailscanner
>> Servicio de Protección contra virus A U S A - Sucursal Cienfuegos
>>
>>
>> _______________________________________________
>> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
>> FAQ: http://listas.aditel.org/faqpyes
>>
>>     
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
> ___________
>  
> Este mensaje ha sido analizado por Mailscanner
> Servicio de Protección contra virus 
> A U S A - Sucursal Cienfuegos
>
>
>
>   

___________
 
Este mensaje ha sido analizado por Mailscanner
Servicio de Protección contra virus 
A U S A - Sucursal Cienfuegos


_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es