Задать вопрос
@danis_2014

Как отправлять Request Payload через библиотеку Requests?

Нужно автоматизировать получение реферальных ссылок с сайта. При получении ссылки вручную, браузер отправляет post запрос с частью Payload: aa63ce0604df4b4e879cd794ffa6fdd9

Пытаюсь тоже провести такой запрос:

def getUrl(login, password, link):
    with requests.Session() as session:
        data = dict(username=login, password=password, remember=1, check_ip=0)
        url = session.get('https://epn.bz')
        login = session.post('https://epn.bz/ru/auth/login', data=data, cookies=url.cookies)
        cabinet = session.get('https://epn.bz/ru/cabinet/', cookies=login.cookies)
        payload = {'all_banners': False,
                   'attract_to_cashback': False,
                   'cookie_time': "30days",
                   'desc': 'programme',
                   'expiration_time': '',
                   'format': '1',
                   'image': '',
                   'isAllow': 0,
                   'lang': 'ru',
                   'link': link,
                   'no_affiliate_direct': True,
                   'offer_type': 'ali',
                   'rejectChange': False,
                   'selected_banners': [],
                   'size': None}
        create = session.post('https://epn.bz/ru/creative/create', data=payload, cookies=cabinet.cookies)
        print(create.text)


Но в ответе получаем: {"success":0,"message":"not_aliexpress"}
Однако ссылка на сайт али передается точно такая же, как и при отправке запроса вручную через браузер.

Правильно ли передаю Payload часть?
  • Вопрос задан
  • 5761 просмотр
Подписаться 2 Средний Комментировать
Решения вопроса 2
@artinnok
бекенд-программист
Почитайте и посмотрите в браузере Request Headers. Скорее всего вам надо подделывать HTTP_REFERER.
Ответ написан
Комментировать
@shamanovski
явно передавать куки в запросах необязательно, т.к. объект Session() делает это за вас.
судя по оформлению payload вашего браузера, можно предположить, что он отправляется в формате json, в то время как вы отправляете его в формате x-www-form-urlencoded.
Попробуйте session.post('https://epn.bz/ru/creative/create', data=json.dumps(payload))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@danis_2014 Автор вопроса
Проблема оказалась в передаваемых заголовках и в json формате payload части, все решено
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы