Ingreso masivo a muchas webs

Iniciado por natko, 22 Octubre 2016, 19:43 PM

0 Miembros y 1 Visitante están viendo este tema.

natko

Hola a todos, soy nuevo en el foro :D

Primeramente quiero aclarar que no se si este tema se debe incluir aquí.. ya que también puede tener que ver con la programación..

Mi problema es el siguiente, yo tengo documento de texto que guarda 90mil links. Todos los links son del mismo sitio web, pero de distintos sectores de ese sitio web. De estos 90mil solo un link es correcto, los otros restantes dan error 404 ya que esa dirección del sitio web no existe.
Busqué pero no encontré ningún programa.. no se como se llama tampoco este tipo de programas :p

Lo que hice fue hacer un programa con python utilizando la librería 'urllib2' en python 2.7. El problema de este programa es que tarda demasiado, y no es por una limitación de internet que tarde, sino por un limitación del algoritmo (la librería). Aproximadamente tardaba 24hs para las 90mil links.. aunque claro, esto como máximo, ya que si lo encontrase antes pararía.

Luego probé con otra librería (descargada) llamada 'concurrent', también en python 2.7.. Este si va mas rápido. Aunque tengo un problema que cada 500 links probados el internet se corta unos pocos minutos y se generan algunos timeouts (estos links que devolvieron de error timeout se guardan en otro documento de texto para probarlos luego).. finalmente contando ese retraso los 90mil links tardarían como máximo 12hs..

Ahora mi pregunta final es, alguien conoce otra librería en python o algún lenguaje que pueda hacerlo mas rápido, o aún mejor un programa ya hecho que haga todo esto?

Desde ya gracias por las respuestas!

Saludos!

engel lex

con urlib puedes hacerlo usando threads... eso si, si la pagina tiene la minima protección espera que te prohiba conectarte por un rato ya que te detectará como un intento de DoS (probablemente esas "casidas de conexión y timeouts que dices)

yo recomendaría usar threads y mantener 10 o 20 conexiones simultaneas... aunque igual 90k links va a tardar tiempo...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Poyoncio

No entiendo como te puede tardar 24 h 90mil links, yo hice algo similar y en una hora indexaba 300.000, aunque claro depende bastante de la pagina... Como ya te han dicho, urrlib para eso te puede funcionar perfectamente, si quieres mejorar los tiempos que tienes ahora, te recomiendo que utilizes varios threads, pero no los estandar, sino otras librerias que hay en github, es question de buscar
Curso de ensamblador desde cero

natko

Ya logre hacer que tarde 30 minutos!

Muchas gracias a ambosss

Saludos!