Как правильно загрузить файл через эту форму загрузки файла на HTML-странице с помощью модуля запросов? Я пытался с помощью следующего кода, но я не уверен, как включить форму в мой код Python?
Логин HTTPDigestAuth работает, и я получаю 200 OK с удаленного сайта.
#!/usr/bin/env python3
import requests
from requests.auth import HTTPDigestAuth
with requests.Session() as s:
url = "http://192.168.1.1/updatesettings.html"
r = s.get(url, auth=HTTPDigestAuth('admin', '123456'))
if r.status_code == 200:
fin = open('backupsettings.conf', 'rb')
files = {'file': fin}
s.post(url, files=files)
else:
print("Login failed")
Форма HTML выглядит следующим образом
<form method='post' ENCTYPE='multipart/form-data' action='uploadsettings.cgi' onSubmit='return isInProgress();'>
<b>Tools -- Update Settings</b><br>
<br>
Update Broadband Router settings. You may update your router settings using your saved files.<br>
<br>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Settings File Name:
</td>
<td><input type='file' name='filename' size='15'></td>
</tr>
</table>
<p align="center"><input type='submit' value='Update Settings'></p>
</form>
Прямо сейчас я получаю "ConnectionResetError: [Errno 104] Соединение сброшено узлом". Но это может быть связано с тем, что я не указал правильные параметры и прочее, поэтому вход в систему работает нормально, если я исключаю POST.