使用网站的Cookies发送JSON请求的Python脚本

0 投票
3 回答
3278 浏览
提问于 2025-04-17 20:37

我正在尝试模拟一个经过认证的JSON请求。我正在使用Requests模块来实现这个目标。

import requests
import json

url = "https://"
headers = {
    'Host': 'example.com',
    'content-type': 'application/json',
    'Connection': 'keep-alive'
}

data = {
"asdsdsd": {
    "AppName": "esdf",
    "Language": "EN",
    "fsef": [
        {
            "sfddf": [
                {
                    "sdfsdfsdf": "sdfsdfsdf"
                }
            ]
        }
    ]
},
"sdfdf": {
    "sdfsdf": "sdfsdfsdf"
}
}

r = requests.post(url, data=json.dumps(data), headers=headers ,verify=False)

我该如何把认证的cookie包含进去呢?

我可以在浏览器中打开这个请求(带上请求头和数据),这样我就能使用浏览器的认证cookie了。

有没有什么方法可以做到这一点?

3 个回答

0
headers = {
'Host': 'example.com',
'content-type': 'application/json',
'Connection': 'keep-alive'
}

session = requests.session()
session.headers=headers
session.post(url, data=json.dumps(data) ,verify=False)

你可以使用会话来处理提交的数据。

0

你可以直接把你的数据以cookie的形式放到请求里,像这样:

data = {
    "sessionid":"yoursessionidorsomethingelseidontcarelolwtfhelloworld"
}
url = "https://youramazingurl.com/list_some_private_data"
res = requests.get(url, cookies=data)

完成啦 :)

1

使用一个 Session 对象 来管理 cookies。

s = requests.Session()

# load initial page to get session cookies set, perhaps a CSRF token
loginform = s.get(loginurl)

# post login information to the form
s.post(someurl, data={...})

# post JSON with session with authentication cookie
s.post(someurl, ...)

撰写回答