2016-09-18 5 views
0

У меня проблема с сохранением captcha как png. Вот мой код до сих порPython save captcha image from url? Ошибка 401

import requests 
url_login = "https://www.hackthis.co.uk/?login" 
r_login = requests.post(url_login, {'username': 'darkcyber', 'password': 'secr3tp4s5'}) 
print r_login.status_code 
if "Invalid login details" in r_login.text: 
     print "Failed to login" 
else: 
     print "Login success" 
url_captcha = "https://www.hackthis.co.uk/levels/extras/captcha1.php" 
r_captcha = requests.get(url_captcha) 
#print r_captcha.status_code << 401 instead 200 
#whats next? 
+0

Вам нужно отправить куки второго запроса (GET). Поскольку первый вход возвращает сеансовые куки. –

ответ

2

Вам необходимо скачать файл и сохранить локальный как новый файл.

Вот пример кода:

import requests 

r = requests.get('http://url.com/captcha.php') 

f = open('yourcaptcha.png', 'wb') 
f.write(r.content) 
f.close() 

UPDATE после ваших комментариев:

import requests 
url_login = "https://www.hackthis.co.uk/?login" 

r_login = requests.post(url_login, {'username': 'darkcyber', 'password': 'secr3tp4s5'}) 

if "Invalid login details" in r_login.text: 
     print "Failed to login" 
else: 
     print "Login success" 

url_captcha = "https://www.hackthis.co.uk/levels/extras/captcha1.php" 
r_captcha = requests.get(url_captcha, cookies=r_login.history[0].cookies) 

print r_captcha.status_code 

f = open('yourcaptcha.png', 'wb') 
f.write(r_captcha.content) 
f.close() 
+0

Я получаю код ответа 401 вместо 200, так или иначе, я уже прошел проверку подлинности. Что не так? –

+0

@ DarkCyber ​​вы можете поместить здесь оригинальный URL-адрес? –

+0

обновил вопрос. –