У меня есть script, который извлекает несколько веб-страниц и анализирует информацию.
(Пример можно увидеть на http://bluedevilbooks.com/search/?DEPT=MATH&CLASS=103&SEC=01)
Я запустил cProfile на нем, и, как я полагал, urlopen занимает много времени. Есть ли способ быстрее получить страницы? Или способ получить сразу несколько страниц? Я сделаю все, что проще, поскольку я новичок в python и веб-разработке.
Спасибо заранее!:)
UPDATE: У меня есть функция под названием fetchURLs()
, которую я использую для создания массива URL-адресов, которые мне нужны
что-то вроде urls = fetchURLS()
. URL-адреса - это все XML файлы из API Amazon и eBay (что меня смущает, почему так долго загружается, может быть, мой веб-хост медленный?)
Мне нужно загрузить каждый URL-адрес, прочитать каждую страницу и отправить эти данные в другую часть script, которая будет анализировать и отображать данные.
Обратите внимание, что я не могу выполнить последнюю часть, пока не будет выбрано ВСЕ страницы, что моя проблема.
Кроме того, мой хост ограничивает меня до 25 процессов за раз, я считаю, поэтому все, что было бы проще на сервере, было бы хорошо:)
Вот это время:
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)