requests - ¿Cómo usar Python para iniciar sesión en una página web y recuperar cookies para su uso posterior?
response 200 python (2)
Quiero descargar y analizar páginas web usando Python, pero para acceder necesito un par de cookies. Por lo tanto, primero necesito ingresar a https en la página web. El momento de inicio de sesión implica el envío de dos parámetros POST (nombre de usuario, contraseña) a /login.php. Durante la solicitud de inicio de sesión, quiero recuperar las cookies del encabezado de respuesta y almacenarlas para que pueda usarlas en la solicitud para descargar la página web /data.php.
¿Cómo haría esto en Python (preferiblemente 2.6)? Si es posible, solo quiero usar módulos integrados.
Aquí hay una versión que usa la excelente biblioteca de requests :
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)
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()
es el html directo de la página que desea abrir, y puede usar el opener
para ver cualquier página utilizando su cookie de sesión.