J'ai besoin d'explorer quelques sites Web pour un projet universitaire et j'ai atteint une impasse pour un site qui nécessite une connexion. J'utilise les modules urllib, urllib2, cookielib en Python pour me connecter. Cela ne fonctionne pas pour http://www.cafemom.com. La réponse http que je reçois est enregistrée dans un fichier .txt et correspond à la page "Connexion infructueuse".Besoin d'aide pour se connecter à un site Web utilisant python
J'ai également essayé d'utiliser le paquet "twill" à cet effet, ce qui n'a pas fonctionné pour moi non plus. Quelqu'un peut-il suggérer ce que je devrais faire? Ci-dessous la méthode principale login() que j'ai utilisée à cette fin.
def urlopen(req):
try:
r = urllib2.urlopen(req)
except IOError, e:
if hasattr(e, 'code'):
print 'The server couldn\'t fulfill the request.'
print 'Error code: ', e.code
elif hasattr(e, 'reason'):
print 'We failed to reach a server.'
print 'Reason: ', e.reason
raise
return r
class Cafemom:
"""Communication with Cafemom"""
def __init__(self, cookieFile = 'cookie.jar', debug = 0):
self.cookieFile = cookieFile
self.debug = debug
self.loggedIn = 0
self.uid = ''
self.email = ''
self.passwd = ''
self.cj = cookielib.LWPCookieJar()
if os.path.isfile(cookieFile):
self.cj.load(cookieFile)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
urllib2.install_opener(opener)
def __del__(self):
self.cj.save(self.cookieFile)
def login(self, email, password):
"""Logging in Cafemom"""
self.email = email
self.passwd = password
url='http://www.cafemom.com/lohin.php?'
cnt='http://www.cafemom.com'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
body = {'identifier': email, 'password': password }
if self.debug == 1:
print "Logging in..."
req = urllib2.Request(url, urllib.urlencode(body), headers)
print urllib.urlencode(body)
#print req.group()
handle = urlopen(req)
h = handle.read()
f = open("responseCafemom.txt","w")
f.write(f)
f.close()
J'ai aussi essayé d'utiliser ce code et a été débouté
import urllib, urllib2, cookielib
username = myusername
password = mypassword
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'identifier' : username, 'password' : password})
opener.open('http://www.cafemom.com/login.php', login_data)
resp = opener.open('http://www.cafemom.com')
print resp.read()
Vous avez « login.php » Spel conduit mal - "lohin.php". En outre, consultez http://cl.ly/272Q2o2q3P2p1g1B1K44 - notez qu'il y a plus de champs que 'identifiant' et 'mot de passe'. –