Python:无法使用请求模块进行身份验证

时间:2017-09-16 11:55:32

标签: python python-3.x authentication python-requests

我在使用Python请求模块向PJ网站验证身份时遇到了一些麻烦。我的代码如下:

import requests 

with requests.Session() as s:
    s.auth = ("my_email", "my_password")
    r = s.get( "https://www.example.com/")

但是,我收到的回复表明我还没有登录。这样做根本不可能吗?我错过了什么(例如CSRF令牌)?

编辑:我做了一些调查,看看手动登录时会发生什么。你可以看到我的浏览器在这里发送的请求的屏幕抓图:PJ Login Request

2 个答案:

答案 0 :(得分:1)

按照Jon的指导想出来:

with requests.Session() as s:
    payload = {'user':'my_email','pass':'my_password', 'target':'/order/menu'}
    r = s.post( "https://www.example.com/order/signin", data=payload)

我已经从请求中找出了正确的有效负载(使用上面编辑中的screengrab),但是我将它发送到错误的位置(即主页而不是用户登录页面)。

答案 1 :(得分:0)

尝试使用Post方法,如果使用http。

,则不会以纯文本格式发送

https GETPOST安全发送,而不是纯文本。

import requests 

with requests.Session() as s:
    s.auth = ("my_email", "my_password")
    r = s.post( "https://www.papajohns.com/")


>>> r
>>> <Response [200]>