type requests library humans for content python http authentication cookies

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.