2015-06-12 3 views
0

У меня есть ситуация, когда в зависимости от того, что пользователь выбирает в моем пакете, мне нужно установить несколько обработчиков.Python, Urllib2 и Openers

Пример У меня есть 3 обработчика. Если пользователь говорит, что хочет использовать прокси-сервер, тогда вам нужно добавить обработчик прокси, но это не всегда ситуация.

Так вы можете вызвать opener = urllib2.build_opener() несколько раз, не перезаписывая существующие обработчики?

пример: открыватель = urllib2.build_opener (RedirectHandler()) открыватель = urllib2.build_opener (ProxyHandler()) ... и т.д ...

мне не нужны все обработчики все времени, и я не чувствую, как использовать случаи для каждой ситуации.

Спасибо

ответ

1

Ответ оказался довольно простым.

handlers = [HandlerObj1(),..., HandlerObjn()] 
urllib2.build_opener(*handlers) 

Всё! Это было просто *.