我在使用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
答案 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
GET
和POST
安全发送,而不是纯文本。
import requests
with requests.Session() as s:
s.auth = ("my_email", "my_password")
r = s.post( "https://www.papajohns.com/")
>>> r
>>> <Response [200]>