Python: urllib2 обрабатывает несколько открывателей - PullRequest
1 голос
/ 22 декабря 2010

Мне нужно сохранить 2 средства открытия urllib2, одно для прямых запросов, второе для отправки запросов через прокси-сервер, и мне нужно перестроить переключение открывания между запросами.

Как сохранить средства открытия контекста, например direct и proxy отдельно?

1 Ответ

6 голосов
/ 22 декабря 2010

Я подозреваю, что ваша путаница связана с использованием install_opener и urllib2.urlopen. Вместо этого просто дважды вызовите build_opener и сохраните результаты в отдельных объектах. Затем вы можете использовать соответствующий открывалка при необходимости.

Пример:

import urllib2
direct = urllib2.build_opener()
proxy_handler = urllib2.ProxyHandler({'http': 'http://www.example.com:3128/'})
proxied = urllib2.build_opener(proxy_handler)


direct.open('http://stackoverflow.com') # opens directly
proxied.open('http://stackoverflow.com') # opens through proxy
...