Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 20, 2010 17:51:39

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить правильную капчу

подскажите, что нужно сохранять вместе с картийкой капчи, что-бы сохраненная картинка и сама капча в браузере были одинаковы
пример
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, картинки будут разные



Офлайн

#2 Янв. 20, 2010 19:52:43

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

Сохранить правильную капчу

Вероятно при получении самого изображения надо передавать hidden поля и/или cookies. Посмотрите заголовки отправляемые на сервер.



Офлайн

#3 Янв. 20, 2010 22:05:27

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить правильную капчу

truporez
Вероятно при получении самого изображения надо передавать hidden поля и/или cookies. Посмотрите заголовки отправляемые на сервер.
на счет хидена, еще никде не встречал такой версии, а вот то что куки нада передавать уже начитался правда еще точно не знаю как, будут мысли не стесняйтесь пишите :)



Офлайн

#4 Янв. 20, 2010 22:45:18

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

Сохранить правильную капчу

а я встречал, и скрытые поля тоже. вот на рамблере есть поле “number”, которое точно не лишне передавать.
а для куков есть urllib2.HTTPCookieProcessor
смотрите в сторону mechanize. правда оно использует clientform на плоховато работающей sgmlib, но для начала пойдет.
я себе мелкий эмулятор браузера написал, hidden автоматом в запрос переносит, referer помнит, определение метода отправки запроса, автодетект кодировки на meta + chardet. основные идеи вот такие.

и кстати, пока не забанили на рамблере используйте прокси для работы. :)



Офлайн

#5 Янв. 20, 2010 23:30:23

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить правильную капчу

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

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

truporez
и кстати, пока не забанили на рамблере используйте прокси для работы.
Я случайно только один раз, зарегистрировался, а так до окончательного этапа не доходил, с капчей маюсь :)



Офлайн

#6 Янв. 20, 2010 23:39:03

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить правильную капчу

Вы правы на счет прокси, уже не разрешают :)



Офлайн

#7 Янв. 21, 2010 16:46:17

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранить правильную капчу

тему поста можна считать закрытой, картинку сохранил с id сессии который хранится в куках, была проблема при получении ответа от сервера, дело в том что я пользовался модулем mechanize,

response=mechanize.urlopen(request)
а нужно было через модуль urllib2
response=urllib2.urlopen(request)
разници пока не знаю :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version