Было бы полезно, если бы вы предоставили больше информации о том, что я могу только догадываться, что вы пытаетесь сделать.
Вы можете изменить data=data
на params=data
, как предлагается в комментариях. Однако это даст ответ в виде html, а не ответ json (что опять же, если вы предоставите больше информации, мы сможем устранить проблему).
В исходном html-коде есть ответ json, однако его необходимо извлечь с помощью некоторых манипуляций со строками, а затем декодировать. Как только это будет сделано, вы используете json.loads()
, чтобы получить:
import requests
import json
from urllib.parse import unquote
headers = {"Host": "www.zalando-prive.it",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0",
"Accept": "application/json, text/plain, */*",
"Accept-Language": "en-US",
"Accept-Encoding": "gzip, deflate, br",
"X-Requested-With": "XMLHttpRequest",
"Referer":"https://www.zalando-prive.it/campaigns/ZZLPH1"
}
data = {"filter": {},
"sort": "attractivity",
"gender": "FEMALE",
"page": 1}
url = "https://www.zalando-prive.it/api/campaigns/ZZLPH1/articles"
response = requests.get(url, params=data, headers=headers)
print(response.text)
jsonStr = response.text
jsonStr = jsonStr.split('data-cms-content="')[-1]
jsonStr = jsonStr.split('" data-reactroot="">')[0]
jsonData = json.loads(unquote(jsonStr))