Я пишу питона-бота, чтобы очистить сайт WordPress, но мне нужно войти в систему, чтобы получить доступ к некоторым ресурсам, которые я хочу. Вот код:
# username, password, and wp_login is defined above
with requests.Session() as s:
# store any initial cookies in the session
s.get(wp_login)
datas={
'log':username, 'pwd':password, 'wp-submit':'Log In',
'redirect-to':'', 'testcookie':'1'
}
# successful or unsuccessful login returns a 302 so I have to not allow
# redirects or I can't view the response header to check for the cookies I need
response = s.post(wp_login, data=datas, allow_redirects=False)
print(response.status_code)
print()
print(response.request.headers)
print()
print(response.headers)
Вот вывод
302
{'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': '__cfduid=[REDACTED]', 'Content-Length': '57', 'Content-Type': 'application/x-www-form-urlencoded'}
{'Date': 'Mon, 30 Sep 2019 06:13:43 GMT', 'Content-Type': 'text/html; charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'X-Powered-By': 'PHP/5.6.32', 'X-Redirect-By': 'WordPress', 'Location': 'https://________/wp-login.php', 'Server': 'cloudflare', 'CF-RAY': '51e40d72d87c9691-SJC'}
При успешном входе в систему я должен получить cookie, а перенаправление в заголовке ответа должно быть на главную страницу. Итак, аутентификация не проходит, и я не понимаю, почему?
Редактировать: успешный запрос POST при просмотре в инструментах разработчика Chrome содержит следующую строку данных:
log=[username]&pwd=[password]&wp-submit=Log+In&redirect_to=&testcookie=1