Ни один модуль не работает с проксями или позволяет их прикрутить без грубого нарушения правил архитектуры (манкипатчинга).
http модули:
- Низкоуровневые. Работу с куками и сессии приходится прикручивать сбоку. Вызовы хрен запомнишь.
- Обертки. Есть гораздо более удобный requests, но он базируется на httplib и тоже с проксями не дружит. Есть несколько приемлемых высокоуровневых модулей, но они разные и не включены в стандартную библиотеку. Т.е. перед тем как просто написать код, надо написать его со встроенной библиотекой (которых аж 3 штуки - а нафига?), блевануть, пойти искать библиотеки, попробовать пару самописных оберток, упереться в их границы, плюнуть на них, лазить по малочисленным постам на эту тему, скачать пару библиотек, перепробовать их все, натыкаясь на грабли и в конце концов выбрать себе что-то более-менее работающее. И это всего лишь для того, чтобы написать простую последовательность запросов с сессией так, чтобы свой код не вызывал отвращения. А как же “there is only one way to do it”?
- Запустить запросы в тредпуле через прокси одним вызовом - это ниибатсо хайлевел.
- httplib не умеет проверять сертификаты - а нахрена тогда ssl вообще сдался?
poplib/imaplib не питонические, какой-то полусишный обгрызок с многоуровневой структурой данных, которую хрен запомнишь и кодами возврата вместо ислючений. По удобству ненамного ушли от прямой работы с сокетом.
Почему бы не принимать файлобьект вместо адреса? Тогда можно было бы и прокси подключить без лишнего геморроя, и логгинг запросов сделать (для чего иначе нужны не очень удобные внешние средства, а в случае с ssl задача вообще нетривиальная).