Как использовать 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)