Comment utiliser Python pour se connecter à une page Web et récupérer des cookies pour un usage ultérieur?
je veux télécharger et analyser la page Web en utilisant python, mais pour y accéder, j'ai besoin de quelques cookies. Par conséquent, je dois d'abord me connecter sur https à la page web. Le moment de connexion implique l'envoi de deux messages (nom d'utilisateur, mot de passe) à /login.php. Pendant la demande de connexion, Je veux récupérer les cookies de l'en-tête de réponse et les stocker afin que je puisse les utiliser dans la demande de télécharger la page web /données.php.
Comment faire en python (de préférence 2.6)? Si possible, Je ne veux utiliser que des modules de construction.
2 réponses
import urllib, urllib2, cookielib
username = 'myuser'
password = 'mypassword'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : username, 'j_password' : password})
opener.open('http://www.example.com/login.php', login_data)
resp = opener.open('http://www.example.com/hiddenpage.php')
print resp.read()
resp.read()
est le html droit de la page que vous voulez ouvrir, et vous pouvez utiliser opener
pour voir n'importe quelle page en utilisant votre cookie de session.
Voici une version utilisant l'excellent requests library:
from requests import session
payload = {
'action': 'login',
'username': USERNAME,
'password': PASSWORD
}
with session() as c:
c.post('http://example.com/login.php', data=payload)
response = c.get('http://example.com/protected_page.php')
print(response.headers)
print(response.text)