Я рассмотрел похожие вопросы, но всегда есть много разногласий по поводу наилучшего способа обработки потоков с HTTP.
Что я конкретно хочу сделать: я использую Python 2.7, и я хочу попробовать потоковые HTTP-запросы (в частности, POSTing something) с прокси-сервером SOCKS5 для каждого. Код, который у меня уже работает, но довольно медленный, так как он ожидает, что каждый запрос (на прокси-сервер, а затем на веб-сервер) завершится до начала другого. Каждый поток, скорее всего, будет делать другой запрос с другим прокси SOCKS.
До сих пор я только использовал urllib2. Я изучил такие модули, как PycURL, но очень сложно правильно установить Python 2.7 на Windows, который я хочу поддерживать и который я кодирую. Я бы хотел использовать любой другой модуль.
Я рассмотрел эти вопросы, в частности:
Python urllib2.urlopen() работает медленно, нужен лучший способ прочитать несколько URL-адресов
Python - пример асинхронного/потокового запроса urllib2 с использованием HTTPS
Многие из примеров получили downvotes и аргументы. Предполагая, что комментаторы верны, создание клиента с асинхронной структурой, такой как Twisted, похоже, будет самой быстрой. Тем не менее, я Googled яростно, и он не предоставляет какой-либо поддержки прокси SOCKS5. В настоящее время я использую модуль Socksipy, и я мог бы попробовать что-то вроде:
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, IP, port)
socks.wrapmodule(twisted.web.client)
Я понятия не имею, будет ли это работать, и я даже не знаю, действительно ли Twisted - это то, что я действительно хочу использовать. Я мог бы просто пойти с модулем потоковой передачи и работать в моем текущем коде urllib2, но если это будет намного медленнее, чем Twisted, я, возможно, не захочу беспокоиться. У кого-нибудь есть понимание?