J'essaie actuellement de me faire une idée sur pycurl. J'essaie de me connecter à un site Web. Après la connexion au site, il devrait rediriger vers la page principale. Cependant, lorsque vous essayez ce script, il est simplement renvoyé à la page de connexion. Que pourrais-je faire de mal?script pycurl ne peut pas se connecter au site Web
import pycurl
import urllib
import StringIO
pf = {'username' : 'user', 'password' : 'pass' }
fields = urllib.urlencode(pf)
pageContents = StringIO.StringIO()
p = pycurl.Curl()
p.setopt(pycurl.FOLLOWLOCATION, 1)
p.setopt(pycurl.COOKIEFILE, './cookie_test.txt')
p.setopt(pycurl.COOKIEJAR, './cookie_test.txt')
p.setopt(pycurl.POST, 1)
p.setopt(pycurl.POSTFIELDS, fields)
p.setopt(pycurl.WRITEFUNCTION, pageContents.write)
p.setopt(pycurl.URL, 'http://localhost')
p.perform()
pageContents.seek(0)
print pageContents.readlines()
EDIT: Comme l'a souligné Pierre l'URL doit pointer vers une URL de connexion, mais le site que je suis en train d'obtenir ce à travailler pour ne me montrer l'URL que ce serait. Comme l'action du formulaire pointe juste vers la page d'accueil (/index.html)
Ne doit pas être l'URL à l'URL de formulaire qui accepte la connexion? Ce n'est généralement pas l'URL "/" de la page d'accueil, mais quelque chose comme "login.cgi" ou "login.php" ou tout autre fichier d'application qui traite le formulaire de connexion. –
Vous avez raison. Je suis retourné et vérifié pour cela et il semble fonctionner pour une page de test que je courais mais n'a pas pour celui que j'essaye de vraiment le faire fonctionner. Le formulaire d'action de la page non-test pointe vers l'URL de la page d'accueil, donc je ne suis pas sûr de ce que je dois faire. –
Plus que probablement, la page sur laquelle vous vous connectez utilise JavaScript pour publier une URL autre que le fichier 'index.html'. Vous devrez peut-être regarder à travers le Javascript pour voir où publier les valeurs. –