Login using python requests doesn't work for pythonanywhere.com

梦想与她 提交于 2020-01-16 05:39:10

问题


I am trying login to the site pythonanywhere.com

import requests

url='https://www.pythonanywhere.com/login'

s = requests.session()

values = {
    'auth-username': 'username', 
    'auth-password': 'password'}

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}

u = s.post(url, data=values, headers=headers)

But I am getting a <Response [403]> , Csrf verification failed. How do I login to that site?


回答1:


You need to get page first.So you can get the crsftoken and sessionid.And remember to set Referer=https://www.pythonanywhere.com/login/

import requests

url='https://www.pythonanywhere.com/login'

s = requests.session()
s.get(url)

values = {
    'auth-username': 'username', 
    'auth-password': 'password',
    "csrfmiddlewaretoken" : s.cookies.get("csrftoken"),
    "login_view-current_step" : "auth"
    }

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36',
            'Referer': 'https://www.pythonanywhere.com/login/'}

u = s.post(url, data=values, headers=headers)
print(u.content)


来源:https://stackoverflow.com/questions/52574908/login-using-python-requests-doesnt-work-for-pythonanywhere-com

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!