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?
InformationsquelleAutor Rhys | 2011-04-30