Python Запросы Вход 403 - PullRequest
       3

Python Запросы Вход 403

2 голосов
/ 09 января 2020

Я пытаюсь войти на этот сайт:

https://www.nike.com.br 

Сначала я получаю куки с селеном, а затем получаю доступ ко второму URL-адресу, чтобы получить маркер посетителя ie и передать его параметры логина url

NIKE_LINK = "https://www.nike.com.br"
LOGIN_LINK = "https://unite.nike.com/login"
VISITOR_LINK = "https://unite.nike.com/akam/11/7e6e9f7d"
driver = webdriver.Firefox()
driver.get(NIKE_LINK)
cookies_home = driver.get_cookies()
driver.get(VISITOR_LINK)
cookies_visitor = driver.get_cookies()

#get the visitor token 
for cookie in cookies_visitor:
    if cookie['name'] == 'visitData':
        visitor = cookie['value']
        index= visitor.find('visitor') + 10
        for i in range(indice, len(visitor)):
            if visitor[i] == '"':
                break
        token = visitor[index:i]

Затем я передаю их в сеанс с запросами

session = requests.Session()

for cookie in cookie_home:
    session.cookies.set(cookie['name'], cookie['value'], path=cookie['path'], domain=cookie['domain'])

И, наконец, попробуйте войти на сайт с помощью запроса POST

params = (
    ('appVersion', '674'),
    ('experienceVersion', '674'),
    ('uxid', 'com.nike.commerce.nikedotcom.brazil.web'),
    ('locale', 'pt_BR'),
    ('backendEnvironment', 'identity'),
    ('browser', 'Google Inc.'),
    ('os', 'undefined'),
    ('mobile', 'false'),
    ('native', 'false'),
    ('visit', '1'),
    ('visitor', token),
)

headers_login = {
    'authority': 'unite.nike.com.br',
    'access-control-request-method': 'POST',
    'origin': 'https://www.nike.com.br',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 OPR/65.0.3467.78',
    'access-control-request-headers': 'content-type',
    'accept': '*/*',
    'sec-fetch-site': 'same-site',
    'sec-fetch-mode': 'cors',
    'referer': 'https://www.nike.com.br/',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7',
}

data = '{"username":"%s'%email+'","password":"%s'%password+'","client_id":"_coe5BGx05K7qEETikSo_2YKClTo1qxI","ux_id":"com.nike.commerce.nikedotcom.brazil.web","grant_type":"password"}'

response = session.post(LOGIN_LINK, headers=headers_login, params=params, json=data)
print(response.text)

Но я получаю ошибку 403

<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;unite&#46;nike&#46;com&#47;login&#63;" on this server.<P>
Reference&#32;&#35;18&#46;4ec5d3ba&#46;1578601683&#46;770ee721
</BODY>
</HTML>

Любая помощь будет оценена! Спасибо

...