Python 3, urllib POST soumettre
Je voudrais écrire un script Python pour la connexion automatique à mon utilisation de la large bande compteur compte. Je n'ai jamais fait un POST soumettre avant et je vais avoir quelques problèmes avec elle.
import urllib.request, urllib.parse, urllib.error
import socket
try:
details = urllib.parse.urlencode({ 'IDToken1': 'USERNAME', 'IDToken2': 'PASSWORD' })
url = urllib.request.Request('https://login1.telecom.co.nz/distauth/UI/Login?realm=XtraUsers&goto=https%3A%2F%2Fwww.telecom.co.nz%3A443%2Fjetstreamum%2FxtraSum%3Flink%3Drdt', details)
url.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13")
responseData = urllib.request.urlopen(url).read().decode('utf8', 'ignore')
responseFail = False
except urllib.error.HTTPError as e:
responseData = e.read().decode('utf8', 'ignore')
responseFail = False
except urllib.error.URLError:
responseFail = True
except socket.error:
responseFail = True
except socket.timeout:
responseFail = True
except UnicodeEncodeError:
print("[x] Encoding Error")
responseFail = True
print(responseData)
De l'HTML, j'ai dérivé qui IDToken1
est le nom d'utilisateur et id de IDToken2
est le mot de passe de l'id.
Voici mon problème:
-
Quand je rentre le nom d'utilisateur correct et le mot de passe, la page de connexion de charge, mais:
-
Quand je rentre le nom d'utilisateur incorrect ou un mot de passe, j'obtiens une page qui dit:
Ce serveur a rencontré une erreur interne qui l'empêche de satisfaire votre demande. La cause la plus probable est une configuration incorrecte. Demandez à l'administrateur pour rechercher des messages dans le journal des erreurs du serveur.
- Eh bien, c'est très difficile sans voir la page en question, vous utilisez... peut-être vous devriez vérifier ce qui est réellement envoyé par votre navigateur avec le Chrome dev tools ou un renifleur de paquets comme Wireshark?
Vous devez vous connecter pour publier un commentaire.
Ajouter la ligne suivante:
Qui pourrait être par la conception. Qu'advient-il si vous le faites dans un navigateur? Le fait qu'il fonctionne avec les données correctes signifie que vous êtes en train de faire.