首页 > 解决方案 > 带有请求的 Python - 403 - 访问被拒绝

问题描述

我在登录 zalando-lounge 网站时遇到了一点问题。我可以轻松访问“主页”,但是当我尝试登录时,我不断收到403 - access denied- 代码。有我的代码:

import requests
import re
from bs4 import BeautifulSoup

login_data = {
    'email': 'xxxxxxx@gmail.com',
    'password': 'xxxxxxx',
    'onlyLogin': 'true'
}

headers = {
    'authority': 'www.zalando-lounge.pl',
    'path': '/onboarding-api/login',
    'scheme': 'https',
    'accept': '*/*',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7',
    'content-length': '79',
    'content-type': 'application/json',
    'cookie': 'zl_webviewos=; zl_webview_ga_cid=; zl_webview_ga_tid=; zl_webview_appversion=; zl_acquire_modal_version=v2; Zalando-Client-Id=139de0ab-053e-4aa5-938c-a37a81f0e49f; frsx=AAEAAHtjmUpIlWFvF1e0AKxzPTPwSjooO_gLd6SzH287PxhdZQFsy6EG0Yseoe0oLqDQkdmppNP0ypKlutRqtYsq3FmBUVqlLMSDombfIYs0487c8knRTdZ80o29XRj4POZeUj_LrW76j98PI0kUOThYxBG-QoDRgCTFgLfWEz3TF7CUGA4u5gmT-0ZXnkfviBT_6NWqQDkpLH7bp41eKOU=; bm_sz=248C62A341C8D5E04A87AB2DA37F3743~YAAQDL17XELMX7N0AQAAV6l4uwlJf+YqW/TsQ6yjVCSb9g8thKH0kjwBNVCAU6xZRUHy3uSfD3QlcmY1AW8zxCuog+9/ef2gIFvDPi4VJr0ZfNmnkbWbepX/yImQt7vMkME+YWAk+0FFOqZ6E1QN/GrvxRqgbay5h3oXmktYeF999VqSQqkbb8YkyNWKmwjhIsVewg3pSQ==; ak_bmsc=EC5DC0114EA8282EC6BB742B39DBDB375C7BBD0C9D5D000079626B5FC8553943~plozB8IkadDOJxGMSdG1g9+6pNBPzsXV+32V0nkEMnaclQj/ZrNXqWegjYouvRokTc2kEWkqN2Wlxz0ZSGZtCGylhQZQpbDzGijYMlDKv03zm2L+F1u/5/6XY7pUEzDbQfqKD0mbjsB2wwdJVp3JesL9gKobpy56NVZasNyQ9oA+GtM6UXKptk5AUEfrOfgsusrJ0wkz6IDvYjZG6yj7wUfAzO3t30o8X3KxNkejR5MYK1bLV/5RIviJhuskIPQTyI; _abck=92282C30E3BCDA76CCA6CD456FCC099E~0~YAAQDL17XIPMX7N0AQAALLV4uwTABalvYtolE/qFVC10ahKD8gKqxTzjrU5puvuIgx55N29fIwgHAnQorDOYnAOxw8359FiF48tOnOtHqbgYvJxMjlx4YK9WHIeS7TXPHDHaSmUjJsXWIbGm5lbGnKaVm+1SpE0sVOlRimMnsQkN/FeprHZSF/OLmB2vwXjbINsdrMKXtJB+ZcYg83Vp7ArYe+Vh9XH/ssjjjDFYV5NroqDuXnG+YvH8Lg4FIXQSfb0Y9evlcPTstK5K0dwtWeQF8JHA99I+SviG+El8rjIY3jdxXDijoD7j/OaElS8kNUfNJehTbAhpX2Vz0ig=~-1~||-1||~-1',
    'origin': 'https://www.zalando-lounge.pl',
    'referer': 'https://www.zalando-lounge.pl/',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}

mainPage = 'https://www.zalando-lounge.pl/#/login'
loginPage = 'https://www.zalando-lounge.pl/onboarding-api/login'
productPage = 'https://www.zalando-lounge.pl/campaigns/ZZO124A/categories/136197597/articles/ZZLNME013-Q00'

session = requests.Session()

main_page = session.get(mainPage, headers=headers)
print("Main page status code: "+str(main_page.status_code))
cookies=main_page.cookies
#cookies = session.cookies.get_dict()
#cookie = re.sub("'", '', str(cookies))
#cookie = re.sub(": ","=",cookie)
#cookie = re.sub(",",";", cookie)
#cookie = re.sub("{", "", cookie)
#cookie = re.sub("}", "", cookie)
#cookie = cookie+"; G_ENABLED_IDPS=google"
#print(cookie)
####^^if I swap the copied cookie with the code above, nothing change.

#here I tried to use different methods to pass the login but it still doesn't work
login_process = session.post(loginPage, data=login_data, headers=headers, cookies=cookies, timeout=15, verify=True) 
print("Login page status code: "+str(login_process.status_code))
print(session.cookies.get_dict())

product_page = session.get(productPage, headers=headers)
source_code = product_page.content
soup = BeautifulSoup(source_code, "html.parser")
xd = soup.find_all("span")
print(xd)

我从浏览器传递了来自“https://www.zalando-lounge.pl/onboarding-api/login”请求的所有标题,但它仍然不起作用。我不知道我该怎么做才能让它工作。

请求标头 ss: 请求标头

标签: pythonpython-requestsrequest

解决方案


HTTP 403 Forbidden client 错误状态响应码表示服务器理解请求但拒绝授权。因此,该网站对您说:“不错的尝试,但没有”。它可能对请求有保护。


推荐阅读