Форум сайта python.su
reclosedevЭто относится ко всем.
Думал вы про HTTP, или про него тоже?
reclosedevВидел. Предлагают два решения: одно - совсем УГ (перезапись глобальной переменной), второе - чуть менее (наследование, но имена переменных - приватные, хоть они так и не обозначены, что если их переименуют или поменяют логику?). Решение с передачей по цепочке файлобьекта свободно от каких-либо сторонних эффектов.
Кстати, тут: http://stackoverflow.com/questions/3386724/python-how-can-i-fetch-emails-via-pop-or-imap-through-a-proxy
наследуются от IMAP4 и переопределив один метод получают SocksIMAP4.
reclosedevЭто как логгер решит. Можно одни заголовки.
С логированием непонятно. Получается будет весь сетевой обмен в лог попадать?
Офлайн
asilyator
какие ещё приватные переменные? Какую логику поменяют? socksipy уже с 2007 года не обновляется.
решил на новую тему потроллить?
пиши в python-dev, там тебя с радостью послушают и примут твои новаторские мега идеи В)
Офлайн
Slavonic, прочел бы топик до конца, в чем именно изменяются переменные. И речь шла о том, что решение не без побочных эффектов.
Могу выслать мазь против бугурта, или не читай топики, где критикуется что-то в питоне - тебе вредно.
Читая твой пост, создается впечатление, что питонистам архитектура программного обеспечения нинужна.
Отредактировано asilyator (Июнь 13, 2012 12:24:22)
Офлайн
asilyator
разберёшься что такое приватный метод и monkey patching, тогда уже поговорим об архитектурах …
Офлайн
А где тут упоминался приватный метод? А изменение глобальной переменной (socket.socket) - это и есть monkey patching.
Офлайн
http модули:
Низкоуровневые. Работу с куками и сессии приходится прикручивать сбоку. Вызовы хрен запомнишь.
Обертки. Есть гораздо более удобный requests, но он базируется на httplib и тоже с проксями не дружит. Есть несколько приемлемых высокоуровневых модулей, но они разные и не включены в стандартную библиотеку. Т.е. перед тем как просто написать код, надо написать его со встроенной библиотекой (которых аж 3 штуки - а нафига?), блевануть, пойти искать библиотеки, попробовать пару самописных оберток, упереться в их границы, плюнуть на них, лазить по малочисленным постам на эту тему, скачать пару библиотек, перепробовать их все, натыкаясь на грабли и в конце концов выбрать себе что-то более-менее работающее. И это всего лишь для того, чтобы написать простую последовательность запросов с сессией так, чтобы свой код не вызывал отвращения. А как же “there is only one way to do it”?
Запустить запросы в тредпуле через прокси одним вызовом - это ниибатсо хайлевел.
httplib не умеет проверять сертификаты - а нахрена тогда ssl вообще сдался?
Офлайн
А как сделать в грабе несколько запросов в тредпуле?
Офлайн
Примерно так:
from grab import Grab from grab.tools.work import make_work def worker(url): g = Grab() g.go(url) return url, g urls = ['http://yandex.ru'] * 100 for requested_url, g in make_work(worker, urls, 10): print requested_url, g.response.body
Отредактировано lorien (Июнь 14, 2012 10:30:40)
Офлайн
А лимиты на сайт и вообще есть?
Офлайн
> А лимиты на сайт и вообще есть?
не понял
Офлайн