Найти - Пользователи
Полная версия: обход капчи
Начало » Python для новичков » обход капчи
1 2
anyNeT
привет всем. я решил написать скудненький клиент для одной cms. там используется капча при добавлении комментариев. поскольку приложение с gui, то я решил сделать просто капчу и рядом текстовое поле для ввода кода в него. но проблема в том, как отправить ее туда. я сделал просто загрузку капчи и затем отправление. но когда я отправляю ее, то серверу уже нужна другая капча. как можно показать и отправить капчу “в пределах одной сессии”?

спасибо.
PooH
Там наверное сессия на куках используется, так что их тоже надо сохранять и отправлять
anyNeT
Я тоже об это думал, но не додумался как :)
Пока у меня скрипт работает так:

1. Загружается капча. Напрямую по URL изображения капчи (php-скрипт генерации).
2. Отправляю POST-запрос на скрипт обработки вместе с кодом капчи.

CMS ругается, что код неправильный.
bw
1. Возможно, это не правильно и нужно, всё же, загружать страницу. Не исключено, что в форме есть еще значимые (скрытые) поля.

..bw
anyNeT
Скрытых полей нет. Только капча и поле ввода + кнопка для отправки.
anyNeT
Погуглил, используется скрипт solmetra.com
pasaranax
Неплохо про устройство капчи написано вот здесь, может полезно будет.
Psixo
Снифер в руки и смотри запросы браузера,сравнивай с тем что сам отправляешь.
anyNeT
спасибо, почитал.

Но так и не смог :( При логине на сайт в куки сажается сесиия. Я ее смог отловить следующим кодом:

cookiejar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
data = urllib.urlencode({'user': 'user', 'password': 'password'})
url = opener.open('http://www.example.com/login.php', data)
print cookiejar
Как я понял теперь мне нужно именно с этими кукисами открыть капчу и отправить код капчи на обработку?
Подгружаю изображение я следующим способом:
file = urllib.urlretrieve(u'http://www.example/captcha.php')
image = wx.Image(file[0]).ConvertToBitmap()
return image
А затем пихаю ее в wx.StaticBitmap.
Как мне в таком случае открыть капчу с моей сессией?
anyNeT
а как можно подцепить хедеры (с кукисами) при file = urllib.urlretrieve(u'http://www.example/captcha.php')?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB