Найти - Пользователи
Полная версия: Сохранить правильную капчу
Начало » Web » Сохранить правильную капчу
1
vgulchik
подскажите, что нужно сохранять вместе с картийкой капчи, что-бы сохраненная картинка и сама капча в браузере были одинаковы
пример
def clik_url(url_path):
request = urllib2.Request(url_path)
response = urllib2.urlopen(request)
url = response.geturl()
read = response.read()
#print response.info()
response.close()
return read,url

def file_save (path,text,mode='wb'):
try:
f=open(path,mode='wb')
f.write(text)
f.close()
except Exception, er:
print ‘\tERROR in func text_to_file’, er
print path

captha_url = "http://id.captcha.rambler.ru/b8bbf16d3dde1a9904ddd3ddd6e895fd.jpg"

img_text,url=clik_url(captha_url)

file_save('images.jpg',img_text) #сохраняем картинку

ведь если в браузере открыть два окна по адресу http://id.captcha.rambler.ru/b8bbf16d3dde1a9904ddd3ddd6e895fd.jpg, картинки будут разные
truporez
Вероятно при получении самого изображения надо передавать hidden поля и/или cookies. Посмотрите заголовки отправляемые на сервер.
vgulchik
truporez
Вероятно при получении самого изображения надо передавать hidden поля и/или cookies. Посмотрите заголовки отправляемые на сервер.
на счет хидена, еще никде не встречал такой версии, а вот то что куки нада передавать уже начитался правда еще точно не знаю как, будут мысли не стесняйтесь пишите :)
truporez
а я встречал, и скрытые поля тоже. вот на рамблере есть поле “number”, которое точно не лишне передавать.
а для куков есть urllib2.HTTPCookieProcessor
смотрите в сторону mechanize. правда оно использует clientform на плоховато работающей sgmlib, но для начала пойдет.
я себе мелкий эмулятор браузера написал, hidden автоматом в запрос переносит, referer помнит, определение метода отправки запроса, автодетект кодировки на meta + chardet. основные идеи вот такие.

и кстати, пока не забанили на рамблере используйте прокси для работы. :)
vgulchik
truporez
а я встречал, и скрытые поля тоже. вот на рамблере есть поле “number”, которое точно не лишне передавать.
оно само передается, я исползую clientform, там видно когда вывести форму

truporez
urllib2.HTTPCookieProcessor
спасибо за подсказку, будем пробовать

truporez
и кстати, пока не забанили на рамблере используйте прокси для работы.
Я случайно только один раз, зарегистрировался, а так до окончательного этапа не доходил, с капчей маюсь :)
vgulchik
Вы правы на счет прокси, уже не разрешают :)
vgulchik
тему поста можна считать закрытой, картинку сохранил с id сессии который хранится в куках, была проблема при получении ответа от сервера, дело в том что я пользовался модулем mechanize,
response=mechanize.urlopen(request)
а нужно было через модуль urllib2
response=urllib2.urlopen(request)
разници пока не знаю :)
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