![]() |
[Python] POP3 & Proxy
как этот скрипт модифицировать на роботу через прокси
Код:
#!/usr/bin/env pythonЕсли работу через прокси можно легко внести сюда то может кто покажет как, если сложно то мож кто знает материальчик хороший на эту тему ? |
Два варианта - первый принудительно указывать переменную окружения (не факт что сработает).
Второй - Socksipy, но придется модифицировать poplib, а точнее обезьянопатчить Вот тебе метод Код:
def __init__(self, host, port=POP3_PORT,Ага, и да, катят только прокси с незарезанным методом CONNECT (в принципе другие и не прокатят и так) В принципе в этих библиотеках больше доков чем кода. Можна и саму библиотеку немного переписать под socksipy(но она херовая сама по себе :() |
Бла-бла-бла
От пиздёжа к делу. Необходима socksipy : Код:
#!/usr/bin/env pythonПосле него пишешь весь свой код (естественно не импортируя повторно poplib :D) Проверил только что. Как уже видно, он патчит метод create_connection из модуля socket, этот метод в библиотеке используется один раз - в атрибуте, который я указал выше. Вроде работает. Для себя - самое то, большего не нужно. Для использования в более высоких целях - не катит ибо там саму socksipy нужно патчить под голимые пабликовые прокси. |
Спасибо, домой приду попробую.
А может тогда будет правильно переквалифицировать скрипт на более сложную логику через socket, там то это уже наверно можно делать легально с помощью библиотечных функций. Точнее я так и буду теперь делать, просто интерестно заранее узнать как там с этим? |
Цитата:
poplib там и так элементарная. Можно ей просто этот манкипатч всунуть в код да и все :) будет sockpoplib :) Переписать будет несложно :) Этот патч будет нормально работать так как этот метод вызывается только один раз. Просто в зависимости от целей нужно что-то думать. Подскажи для чего оно нужно и подумаем, имеет ли смысл ее модифицировать. А насчет socksipy то она работает как надстройка над socket . Там парочка методов которые ничего особого не делают. Они только отправляют инициирующий запрос на соединение прокси/сокс-серверу, а потом просто связывают свой внутренний сокет с этим проксиком. Оно все прозрачно и красиво, но для моих целей неюзабельно ибо неустойчиво + еще пару минусов. Я вообще задумался над написанием своего собственного модуля для работы с хттп протоколом (хотя бы начального уровня, для своих потребностей) Хотя и планов то у меня как у Наполеона |
ну как бы банально это не было, хочу свой чекер мыл сделать :) для него этот метод как раз то самое.
Но если учитывать Наполеоновкие планы то возможно когда то в будущем сделать скрипт по изменению аутентификационных данных на good-мылах, хотя подумал и решил что правильней сначала прочекать а уже в другом скрипте можно и менять данные (но мож отпустит, и перехочется этим заниматься) так что остановлюсь на твоем методе. |
Подумал на досуге и понял что такой метод не канает, модификация идет глобальная а нужна локальная для каждого потока.
если например сделать параметр прокси передаваемый в эту функцию а не статический то придеться модифицировать часть стандартных функций библиотеки что вообще ни есть гуд. :( Может есть у кого еще идеи, как работают аналогичные чекеры ? |
Цитата:
Могу завтра по свободе заняться. Только чур не ругаться потом на socksipy. Если нужно могу выложить свой немного поправленный прокси-чекер с модифицированной socksipy (правда там есть один нюанс - то ли криво работает Socksipy, то ли httplib2 (использовал socksipy в связке с ней), но я от этого варианта отказался из-за редкостной глючности). Прокси-чекер это класс а не приложение :). Вроде я его еще не удалил. |
http://dl.dropbox.com/u/381215/sockspoplib.zip
Минимальные изменения в poplib (в предела патча+замечен один баг в самой poplib =/) |
выкладывай, думаю лишнем не будет.
А что ты подразумеваешь под "модифицированной" библиотекой ? Это переопределенные функции в самом коде скрипта (по типу как ты сделал create_connection) или в самой библиотеке поправлено что то ? |
| Время: 07:29 |