Форум сайта python.su
привет всем. я решил написать скудненький клиент для одной cms. там используется капча при добавлении комментариев. поскольку приложение с gui, то я решил сделать просто капчу и рядом текстовое поле для ввода кода в него. но проблема в том, как отправить ее туда. я сделал просто загрузку капчи и затем отправление. но когда я отправляю ее, то серверу уже нужна другая капча. как можно показать и отправить капчу “в пределах одной сессии”?
спасибо.
Отредактировано (Июль 9, 2009 10:05:45)
Офлайн
Там наверное сессия на куках используется, так что их тоже надо сохранять и отправлять
Офлайн
Я тоже об это думал, но не додумался как :)
Пока у меня скрипт работает так:
1. Загружается капча. Напрямую по URL изображения капчи (php-скрипт генерации).
2. Отправляю POST-запрос на скрипт обработки вместе с кодом капчи.
CMS ругается, что код неправильный.
Офлайн
1. Возможно, это не правильно и нужно, всё же, загружать страницу. Не исключено, что в форме есть еще значимые (скрытые) поля.
..bw
Офлайн
Скрытых полей нет. Только капча и поле ввода + кнопка для отправки.
Офлайн
Погуглил, используется скрипт solmetra.com
Офлайн
Неплохо про устройство капчи написано вот здесь, может полезно будет.
Офлайн
Снифер в руки и смотри запросы браузера,сравнивай с тем что сам отправляешь.
Офлайн
спасибо, почитал.
Но так и не смог :( При логине на сайт в куки сажается сесиия. Я ее смог отловить следующим кодом:
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
Отредактировано (Июль 10, 2009 10:18:36)
Офлайн
а как можно подцепить хедеры (с кукисами) при file = urllib.urlretrieve(u'http://www.example/captcha.php')?
Отредактировано (Июль 10, 2009 14:56:58)
Офлайн