¿Cómo utilizar Python para iniciar sesión en una página web y recuperar cookies para su uso posterior?

Quiero descargar y analizar la página web usando python, pero para acceder a ella necesito un par de cookies. Por lo tanto, primero debo iniciar sesión en https a 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, deseo recuperar las cookies del encabezado de respuesta y almacenarlas para poder 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 incorporados.

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 usando su cookie de sesión.

Aquí hay una versión usando la excelente biblioteca de solicitudes :

 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)