9kw.euのcaptcha解決サービスとapi https://www.9kw.eu/api.html#apisubmit-tab を通して通信するシンプルなpythonコードを作成しようとしています。基本的にはbase64エンコードされた画像をいくつかのkey:valuesで送信し、サーバーからのレスポンスは以下のような数字になるはずです。58952554のような数字が返ってくるはずなのですが、以下のような数字しか返ってきません。
<response[200]>
これは、サーバーが私のデータを受け取ったことを意味するはずですが、他に何も得られません。 シンプルなHTMLフォームでは正しい結果を得ることができます。
<form method="post" action="https://www.9kw.eu/index.cgi" enctype="multipart/form-data">
KEY:<br>
<input name="apikey" value="APIKEY"><br>
ACTION<br>
<input name="action" value="usercaptchaupload"><br>
FILE:<br>
<input name="file-upload-01" value="BASE64IMAGEDATAHERE"><br>
TOOL<br>
<input name="source" value="htmlskript"><br>
ROTATE<br>
<input name="rotate" value="1"><br>
Angle<br>
<input name="angle" value="40"><br>
BASE64
<input name="base64" value="1"><br>
Upload:<br>
<input type="submit" value="Upload and get ID">
</form>
これはpythonのコードで、同じことができるはずです。
import requests
import time
#base64 image encoding
with open("funcaptcha1.png", "rb") as f:
data = f.read()
filekodovany = data.encode("base64")
#captcha uploader
udajepost = {'apikey':'APIKEY','action':'usercaptchaupload','file-upload-01':filekodovany,'source':'pythonator','rotate':'1','angle':'40','base64':'1'}
headers = {'Content-Type':'multipart/form-data'}
r = requests.post('https://www.9kw.eu/index.cgi', data = udajepost)
print(r)
ご協力ありがとうございました。