Помогите создать правильный пайлоад

С помощью сайта https://curlconverter.com/python создал код убрал всё лишнее,получил примерно это:

import requests



headers ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0',
    'Accept': '*/*',
    'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'X-Requested-With': 'XMLHttpRequest', 
    'Connection': 'keep-alive',
}

data = 'PhoneNumber=%2B7(901)+562+-+22+-+89&Password=Qwerty11!&X-Requested-With=XMLHttpRequest'

r = requests.post('https://my.****.ru/Contact/Login', headers=headers, data=data)

print(r.text)

Проблема состоит в том,что в дальнейшем мне придется извлекать логин и пароль из текстовика в формате 79015622289:Qwerty11!

Как создать пайлоад исходя из этой строки?

data = 'PhoneNumber=%2B7(901)+562+-+22+-+89&Password=Qwerty11!&X-Requested-With=XMLHttpRequest'

Ответы (1 шт):

Автор решения: Namerek
from pprint import pprint
from urllib.parse import unquote_plus, parse_qs

payload = parse_qs(
    unquote_plus(
        'PhoneNumber=%2B7(901)+562+-+22+-+89&Password=Qwerty11!&X-Requested-With=XMLHttpRequest'
    )
)
phone_number, *_ = [''.join(filter(str.isdigit, item)) for item in payload.get(
    'PhoneNumber', []
)] or ('', )
password, *_ = payload.get(
    'Password'
) or ('', )
pprint(payload)
print(phone_number, password, sep='\n')

# {'Password': ['Qwerty11!'],
#  'PhoneNumber': [' 7(901) 562 - 22 - 89'],
#  'X-Requested-With': ['XMLHttpRequest']}
# 79015622289
# Qwerty11!
→ Ссылка