Como acelerar a busca de páginas com urllib2 em python?

Eu tenho um script que busca várias páginas da web e analisa as informações.

(Um exemplo pode ser visto emhttp://bluedevilbooks.com/search/?DEPT=MATH&CLASS=103&SEC=01 )

Eu executei o cProfile e, como presumi, o urlopen leva muito tempo. Existe uma maneira de buscar as páginas mais rapidamente? Ou uma maneira de buscar várias páginas ao mesmo tempo? Farei o que for mais simples, pois sou novo em desenvolvimento de python e web.

Desde já, obrigado! :)

UPDATE: Eu tenho uma função chamadafetchURLs(), que eu uso para criar uma matriz dos URLs necessários, algo comourls = fetchURLS().Os URLs são todos os arquivos XML das APIs da Amazon e do eBay (o que me confunde por que demora tanto tempo para carregar, talvez o meu host esteja lento?)

O que preciso fazer é carregar cada URL, ler cada página e enviar esses dados para outra parte do script que analisará e exibirá os dados.

Observe que não posso fazer a última parte até que TODAS as páginas sejam buscadas, é esse o meu problema.

Além disso, meu host me limita a 25 processos por vez, acredito, portanto, o que for mais fácil no servidor seria bom :)

Aqui está o tempo:

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)

questionAnswers(11)

yourAnswerToTheQuestion