Python 2.6: параллельный синтаксический анализ с urllib2

В настоящее время я извлекаю и разбираю страницы с веб-сайта с помощью urllib2. Тем не менее, их много (более 1000), и их обработка последовательно медленнее.

Я надеялся, что есть способ получить и проанализировать страницы параллельно. Если это хорошая идея, возможно ли это и как мне это сделать?

Кроме того, какие "разумные" значения для количества страниц обрабатываются параллельно (я бы не хотел слишком сильно накладывать на сервер или быть заблокирован, потому что я использую слишком много соединений)?

Спасибо!

Ответ 1

Вы всегда можете использовать потоки (т.е. запускать каждую загрузку в отдельном потоке). Для больших чисел это может быть немного слишком ресурсоемкой, и в этом случае я рекомендую вам взглянуть на gevent и, в частности, этот пример, который может быть именно тем, что вам нужно.

(из gevent.org: "gevent - это корпоративная сетевая библиотека Python на основе сопрограмм, которая использует greenlet для предоставления высокоуровневого синхронного API поверх цикла событий libevent" )