Необходимо загрузить изображение с капчей на сервис
rucaptcha и получить сам текст капчи. В документации к загрузке изображений написано:
Пример загрузки в формате multipart:
<form method="post" action="http://rucaptcha.com/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
Ключ от учетной записи:
<input type="text" name="key" value="YOUR_APIKEY">
Файл капчи:
<input type="file" name="file">
<input type="submit" value="загрузить и получить ID">
</form>
В документации к библиотеки Requests написано:
# POST a Multipart-Encoded File
url = 'http://httpbin.org/post'
files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=files)
Получаю такой код:
key = 'mykey'
file = {'file': open('captcha.jpg', mode='rb')} # captcha.jpg - изображение с капчей
r = requests.post('http://rucaptcha.com/in.php', files=file, data={'key': key}) # OK|captchaid
id = r.text.split('|')[1]
inspect = 'CAPCHA_NOT_READY'
while inspect == 'CAPCHA_NOT_READY':
r2 = requests.get('http://rucaptcha.com/res.php?key='+key+'&action=get&id='+id)
inspect = r2.text
Если текст капчи еще не готов, то r2.text будет равен 'CAPCHA_NOT_READY', иначе r2.text будет равен тексту капчи. То есть последний цикл выполняется, пока капча не готова. Но проблема в том, что этот цикл не заканчивается. То есть ответ всегда "CAPCHA_NOT_READY". Есть идеи, почему это происходит?