Python 2.6: параллельный синтаксический анализ с urllib2
В настоящее время я извлекаю и разбираю страницы с веб-сайта с помощью urllib2
. Тем не менее, их много (более 1000), и их обработка последовательно медленнее.
Я надеялся, что есть способ получить и проанализировать страницы параллельно. Если это хорошая идея, возможно ли это и как мне это сделать?
Кроме того, какие "разумные" значения для количества страниц обрабатываются параллельно (я бы не хотел слишком сильно накладывать на сервер или быть заблокирован, потому что я использую слишком много соединений)?
Спасибо!
Ответы
Ответ 1
Вы всегда можете использовать потоки (т.е. запускать каждую загрузку в отдельном потоке). Для больших чисел это может быть немного слишком ресурсоемкой, и в этом случае я рекомендую вам взглянуть на gevent и, в частности, этот пример, который может быть именно тем, что вам нужно.
(из gevent.org: "gevent - это корпоративная сетевая библиотека Python на основе сопрограмм, которая использует greenlet для предоставления высокоуровневого синхронного API поверх цикла событий libevent" )