Форум сайта python.su
подскажите, что нужно сохранять вместе с картийкой капчи, что-бы сохраненная картинка и сама капча в браузере были одинаковы
пример
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, картинки будут разные
Офлайн
Вероятно при получении самого изображения надо передавать hidden поля и/или cookies. Посмотрите заголовки отправляемые на сервер.
Офлайн
truporezна счет хидена, еще никде не встречал такой версии, а вот то что куки нада передавать уже начитался правда еще точно не знаю как, будут мысли не стесняйтесь пишите :)
Вероятно при получении самого изображения надо передавать hidden поля и/или cookies. Посмотрите заголовки отправляемые на сервер.
Офлайн
а я встречал, и скрытые поля тоже. вот на рамблере есть поле “number”, которое точно не лишне передавать.
а для куков есть urllib2.HTTPCookieProcessor
смотрите в сторону mechanize. правда оно использует clientform на плоховато работающей sgmlib, но для начала пойдет.
я себе мелкий эмулятор браузера написал, hidden автоматом в запрос переносит, referer помнит, определение метода отправки запроса, автодетект кодировки на meta + chardet. основные идеи вот такие.
и кстати, пока не забанили на рамблере используйте прокси для работы. :)
Офлайн
truporezоно само передается, я исползую clientform, там видно когда вывести форму
а я встречал, и скрытые поля тоже. вот на рамблере есть поле “number”, которое точно не лишне передавать.
truporezспасибо за подсказку, будем пробовать
urllib2.HTTPCookieProcessor
truporezЯ случайно только один раз, зарегистрировался, а так до окончательного этапа не доходил, с капчей маюсь :)
и кстати, пока не забанили на рамблере используйте прокси для работы.
Офлайн
Вы правы на счет прокси, уже не разрешают :)
Офлайн
тему поста можна считать закрытой, картинку сохранил с id сессии который хранится в куках, была проблема при получении ответа от сервера, дело в том что я пользовался модулем mechanize,
response=mechanize.urlopen(request)
response=urllib2.urlopen(request)
Офлайн