使用Python请求库的新手,并在访问cookie方面寻求一些帮助...
我无法访问使用Requests库从以下代码中获取的cookie中的所有字段-GoLang或Postman的类似代码都可以正常工作,但是由于某些原因,我缺少一些关键字段我需要来自Python-land的东西。示例代码如下:
import requests
# Host base URL
host = 'sampleurl.link/endpoint'
# Username and password for login to API endpoint
credentials = "username=sausage123%40spaniel.org&password=Passw0rd"
ses = requests.Session()
authString = ''
def auth(host):
payload = credentials
headers = {
'Content-Type': "application/x-www-form-urlencoded",
}
ses.post("https://" + host + "/auth", data=payload, headers=headers)
cookies = ses.cookies.get_dict()
print(cookies.items())
authString = "; ".join([str(x)+"="+str(y) for x,y in cookies.items()])
print(authString)
auth(host)
输出如下:
[('systemid3', 'eSgRCbaH2EWyBVbRyfBS7xfftYCAqE-BRaon1Uc350pi14qTVgsmDXLrK9TDJvPsKmAzgw==')]
但是,通过GoLang或Postman等价的相同API调用。我得到所有必填字段,包括路径和到期时间:
systemid3=eSgRCbaH2EWyBVbRyfBS7xfftYCAqE-BRaon1Uc350pi14qTVgsmDXLrK9TDJvPsKmAzgw==; Path=/; Expires=Sat, 21 Sep 2019 09:37:46 GMT
请注意,邮递员还为我提供了相同的“路径”和“过期”字段。
我如何获得Requests lib,以便我可以访问Cookie中的所有字段,而不仅仅是前2个?为什么隐藏/删除其他cookie字段?
谢谢!
答案 0 :(得分:0)
这是因为您使用的是.items()
,它只会获取Cookie名称和值
您可以访问其他部分,例如:
for cookie in s.cookies:
print(cookie.name)
print(cookie.value)
print(cookie.expires)
print(cookie.path)