有一个站点,您需要以 JSON 格式从中提取信息。在某些地方,我已经从中提取了信息——requests.get('интересующий url')
它已经准备好了,但现在它不是那样工作的。通过Burp Suite发现浏览器发出如下请求:
POST /getJSON/ViewInfo HTTP/1.1
Host: NoName.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36
Accept: */*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Content-Type: application/json
Content-Length: 81
{"Language":"ru"}{"Params":[null, null, 1, null, null]}{"V":1}{"Adult": false}
我想知道如何更改代码行
res = requests.get(url, headers=var.user_agent)
获取(最好通过请求库)对给定 POST 请求的响应。那些。我在哪里以及如何编写珍贵的{"Language":"en"}{"Params":[null, null, 1, null, null]}{"V":1}{"Adult": false}
如果你这样写:
payload = ({"Language":"ru"},{"Params":["null", "null", 1, "null", "null"]},{"Vers":2})
res = requests.post(url, json=payload)
page = res.text
然后一切都“有效”,没有错误,就像答案一样。你需要一个答案。
不能
null
用引号引起来。您由此创建了一个字符串值。相反,您需要使用 Python 等效项None
:以下请求将发送到服务器:
如您所见,发送了一个对象数组,而在浏览器请求中,发送了几个粘合对象(当然,如果您正确捕获了所有内容)。事实上,在该请求中传递了无效的 json(多个 JSON 根元素)。
如果您仍然需要以这种形式发送请求,那么您可以将数据形成为字符串并
Content-Type
在请求标头中写入适当的:请求将发送到服务器: