Задать вопрос
  • Как исправить ошибку в запросе requests?

    @mikebelly
    import requests
    import json
    
    
    BTC_rosbank = {'tokenId': 'BTC', 'currencyId': 'RUB', 'payment': 75, 'side': 1, 'size': 10, 'page': 1}
    
    
    headers = {
        'accept': '*/*',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'ru-RU',
        'cache-control': 'no-cache',
        'content-length': '85',
        'content-type': 'application/x-www-form-urlencoded',
        'guid': 'dfc2731c-84fe-30f1-33fb-a1ae4f96d5de',
        'lang': 'ru-RU',
        'origin': 'https://www.bybit.com',
        'platform': 'PC',
        'pragma': 'no-cache',
        'referer': 'https://www.bybit.com/',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': 'Windows',
        'sec-fetch-dest': 'empty',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-site',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
    }
    json = json.dumps(BTC_rosbank)
    result_BTC_rosbank = requests.post('https://api2.bybit.com/spot/api/otc/item/list', headers=headers, data=BTC_rosbank)
    
    print(result_BTC_rosbank.text)


    У меня это работает, нужно убрать некоторые параметры из переменной BTC_Rosbank, 'accept' сделать '*/*', потому что requests сама определяет тип входящих данных (content-type - тоже ловушка в данной ситуации, у меня эта строка мешала парсить бинанс). Ну и вместо json отправлять data. Я парсил всю страницу сразу, не знаю, получится ли у вас по вашим запросам (+ удалить кукис и токен)
    Ответ написан
    Комментировать