¿Cómo puedo acelerar la búsqueda de páginas con urllib2 en python?
Tengo un script que busca varias páginas web y analiza la información.
(Se puede ver un ejemplo enhttp://bluedevilbooks.com/search/?DEPT=MATH&CLASS=103&SEC=01 )
Ejecuté cProfile en él y, como supuse, urlopen lleva mucho tiempo. ¿Hay alguna manera de recuperar las páginas más rápido? ¿O una forma de obtener varias páginas a la vez? Haré lo que sea más simple, ya que soy nuevo en Python y desarrollo web.
¡Gracias por adelantado! :)
ACTUALIZACIÓN: tengo una función llamadafetchURLs()
, que utilizo para hacer una matriz de las URL que necesito, así que algo comourls = fetchURLS()
.Las URL son todos archivos XML de las API de Amazon y eBay (lo que me confunde por qué tarda tanto en cargarse, ¿tal vez mi webhost es lento?)
Lo que necesito hacer es cargar cada URL, leer cada página y enviar esos datos a otra parte del script que analizará y mostrará los datos.
Tenga en cuenta que no puedo hacer la última parte hasta que TODAS las páginas hayan sido recuperadas, ese es mi problema.
Además, creo que mi host me limita a 25 procesos a la vez, por lo que lo que sea más fácil en el servidor sería bueno :)
Aquí es por tiempo:
Sun Aug 15 20:51:22 2010 prof
211352 function calls (209292 primitive calls) in 22.254 CPU seconds
Ordered by: internal time
List reduced from 404 to 10 due to restriction <10>
ncalls tottime percall cumtime percall filename:lineno(function)
10 18.056 1.806 18.056 1.806 {_socket.getaddrinfo}
4991 2.730 0.001 2.730 0.001 {method 'recv' of '_socket.socket' objects}
10 0.490 0.049 0.490 0.049 {method 'connect' of '_socket.socket' objects}
2415 0.079 0.000 0.079 0.000 {method 'translate' of 'unicode' objects}
12 0.061 0.005 0.745 0.062 /usr/local/lib/python2.6/HTMLParser.py:132(goahead)
3428 0.060 0.000 0.202 0.000 /usr/local/lib/python2.6/site-packages/BeautifulSoup.py:1306(endData)
1698 0.055 0.000 0.068 0.000 /usr/local/lib/python2.6/site-packages/BeautifulSoup.py:1351(_smartPop)
4125 0.053 0.000 0.056 0.000 /usr/local/lib/python2.6/site-packages/BeautifulSoup.py:118(setup)
1698 0.042 0.000 0.358 0.000 /usr/local/lib/python2.6/HTMLParser.py:224(parse_starttag)
1698 0.042 0.000 0.275 0.000 /usr/local/lib/python2.6/site-packages/BeautifulSoup.py:1397(unknown_starttag)