Spider / Crawler

Cesar Ortiz cesar en ortiz.name
Mar Jul 1 18:56:23 CEST 2008


Aprovechando el hilo... y que parece que hay gente por aquçi que ha
trabajado sobre este tema...
Y de los crawlers que hay disponibles for free [1], ¿alguna sugerencia?
Tenemos que crawlear unas webs, para luego procesarlas pero queremos
utilizar algún crawler disponible. Lo que pasa es que hay unos cuantos....
[2]
Así a bote pronto vamos a probar con HTTrack... un poco por probar [3].

Es una pena que la wikipedia no tenga una comparativa...

Saludos, César

[1] http://en.wikipedia.org/wiki/Category:Free_web_crawlers
[2] http://en.wikipedia.org/wiki/Web_crawler
[3] http://en.wikipedia.org/wiki/HTTrack

2008/7/1 Lic. Ariel Garcia Reyes <ariel en cfg.ausa.cu>:

> 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
>
_______________________________________________
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