Как использовать Python для входа на веб-страницу и получения файлов cookie для последующего использования?

Я хочу загрузить и проанализировать веб-страницу с помощью python, но для доступа к ней мне нужно несколько файлов cookie. Поэтому сначала мне нужно зайти на https на веб-страницу. Момент входа включает отправку двух параметров POST (имя пользователя, пароль) в /login.php. Во время запроса на вход я хочу получить файлы cookie из заголовка ответа и сохранить их, чтобы я мог использовать их в запросе для загрузки веб-страницы/data.php.

Как я могу сделать это в python (желательно 2.6)? Если возможно, я хочу использовать встроенные модули.

Ответ 1

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() - это прямой html страницы, которую вы хотите открыть, и вы можете использовать opener для просмотра любой страницы с помощью cookie сеанса.

Ответ 2

Здесь версия, использующая отличную библиотеку 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)