¿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)

Respuestas a la pregunta(11)

Su respuesta a la pregunta