Если вы хотите использовать модуль requests
, вам нужно использовать сеанс.
Чтобы инициализировать сеанс, вы выполните:
session_requests = requests.session()
Затем вам понадобится полезная нагрузка с именем пользователя и пароль
payload = {
"username":<USERNAME>,
"password":<PASSWORD>}
Затем для входа в систему вы делаете:
result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
Теперь ваш сеанс должен быть авторизован, так что go для любой другой страницы защиты паролем вы используете тот же сеанс:
result = session_requests.get(
url,
headers = dict(referer = url)
)
Затем вы можете использовать result.content
для просмотра содержимого этой страницы.
РЕДАКТИРОВАТЬ, если на вашем сайте есть токен CSRF, вам нужно будет включить его в полезную нагрузку ». Чтобы получить токен CSRF, замените раздел «полезные данные» на:
from lxml import html
tree = html.fromstring(result.text)
#you may need to manually inspect the tree to find how your CSRF token is specified.
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
payload = {
"username":<USERNAME>,
"password":<PASSWORD>,
"csrfmiddlewaretoken":authenticity_token
}