Я пытаюсь получить данные, используя json запросы к веб-сайту :
import requests
headers = {
'Connection': 'keep-alive',
'Accept': 'application/json',
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Mobile Safari/537.36',
'Content-Type': 'application/json',
'Origin': 'https://dimsum.eu-gb.containers.appdomain.cloud',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://dimsum.eu-gb.containers.appdomain.cloud/',
'Accept-Language': 'en-US,en;q=0.9',
}
data = f'{{"query":"{query}","filters":{{"year":2020}},"page":{page},"size":10,"sort":null,"sessionInfo":""}}'
#data = '{"query":"reading comprehension","filters":{},"page":0,"size":10,"sort":null,"sessionInfo":""}'
print("data:", data)
response = requests.post('https://dimsum.eu-gb.containers.appdomain.cloud/api/scholar/search', headers=headers, data=data)
Я получаю следующую ошибку:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Программа работает, если я использую "filters":{{}}
. Я не уверен, как я могу передать ему фильтры и есть ли у него поле с именем «год» или нет. Я не знаю, вызвана ли ошибка синтаксисом или отсутствием поля.