Latest posts on urllib2 Запросы через разные прокси topichttps://python.su/forum/topic/1266/2007-09-25T20:18:10+03:00Веб-технологии :: Web :: urllib2 Запросы через разные прокси
2007-09-25T20:18:10+03:00Андрей Светлов8192Так ведь:<br/><br/>_opener = None<br/>def urlopen(url, data=None):<br/> global _opener<br/> if _opener is None:<br/> _opener = build_opener()<br/> return _opener.open(url, data)<br/><br/>def install_opener(opener):<br/> global _opener<br/> _opener = opener<br/><br/>Делай свой opener как обычно, но запоминай его (в потоке, для каждого прокси - как удобней).<br/>А потом всего лишь нужно вызвать opener.open(url_or_request, data=None)<br/>Опять повторю совет - читай исходники!!!
Веб-технологии :: Web :: urllib2 Запросы через разные прокси
2007-09-25T18:38:10+03:00Juster8190Абсолютно согласен, чем меньше кода тем безопасней и быстрее. Только уточнить хотел мне initproxy перед каждым вызовом urllib2.urlopen вызывать? чтобы сменить прокси. Хочу делать запросы на разные прокси и наверно из разных потоков. Как лучше?
Веб-технологии :: Web :: urllib2 Запросы через разные прокси
2007-09-25T18:25:25+03:00Андрей Светлов8189А именно так. Зарегистрировать свой opener. Как именно лучше всего - смотреть нужно отдельно. Твой метод тоже хорош.
Веб-технологии :: Web :: urllib2 Запросы через разные прокси
2007-09-25T16:36:18+03:00Juster8185Здрасивуйте, подскажите как сделать для каждого вызова urllib2.urlopen свой прокси. Юзаю следуещее, как это усовершентсвовать? В доках по либе видел метод set_proxy для Request, но не понял как юзать.<br/><br/>def initproxy():<br/> if PROXY is not None :<br/> proxy_support = urllib2.ProxyHandler( {“http” : PROXY} )<br/> opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)<br/> else:<br/> opener = urllib2.build_opener(urllib2.HTTPHandler)<br/> opener.addheaders = <br/> urllib2.install_opener(opener)<br/><br/>request = urllib2.Request(TARGET+self.path, “”, headers)<br/>request.set_proxy(self,PROXY)<br/>objurl = urllib2.urlopen(request)