【发布时间】:2019-05-02 02:29:46
【问题描述】:
尽管我收到 403 Access Denied,但我让 python 发送了一个 POST 请求,如下所示。我什至加入了代理(我知道网站上没有禁止代理),但我似乎仍然遇到同样的错误。
data = {'authToken': '3040141554%2CbCFq3TBCs6HpcoS4y8%2B%2FtD2wmOeTYUvjNs%2FEy9nQ94E%3D',
'actionType': 'add',
'formName': 'createFamilyUser',
'layout': 'user/createFamilyUser',
'storeId': '18',
'langId': '-26',
'addressType': 'SB',
'customerPanelInDB': 'false',
'ppAction': 'createFamilyUser',
'firstName': 'First',
'lastName': 'Last',
'birthDay': '4',
'birthMonth': '2',
'birthYear': '2000',
'address1': '123 Test St',
'city': 'Test City',
'state': 'QLD',
'zipCode': '1234',
'email1': 'xxxx@gmail.com',
'email1_verify': 'xxxx@gmail.com',
'phone2': '0420657499',
'logonPassword': 'Password123#',
'logonPasswordVerify': 'Password123#',
'storeNumber': '919',
'acceptCond': 'true'}
proxies = {'http': 'http://MyProxyHere', 'https': 'http://MyProxyHere'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0'}
r = requests.post('https://secure.ikea.com/webapp/wcs/stores/servlet/ProtectedCreateUser', data=data, proxies=proxies, headers=headers)
print(r.status_code) # Prints 200
print(r.text)
它正在我的终端中返回:
403
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>
You don't have permission to access "http://secure.ikea.com/webapp/wcs/stores/servlet/ProtectedCreateUser" on this server.<P>
Reference #18.6367a5c.1556763656.439c5486
</BODY>
</HTML>
我实际上是在尝试在宜家创建一个帐户。我知道我的代理没有被禁止,因为我可以使用 selenium 在前端创建一个帐户,它工作得很好,但是通过这种方法它非常慢。任何有关此问题的解决方法的帮助将不胜感激...
【问题讨论】:
-
身份验证令牌可能已过期。他们不会告诉你哪里出了问题,因为这不是他们期望的用法。祝你好运。
-
您是否尝试在
headers中使用authToken,而不是在data中?我认为 authToken 通常用于 header -
@ShioT 尝试使用新的身份验证令牌,但仍然没有运气:/
-
@Jin Yep 也试过了,仍然返回 403...
-
您可能必须使用
CreateFamilyUser表单获取页面才能获得隐藏在HTML 中的新鲜authToken。您可能还需要Session()来保存 cookie。服务器可能会将authToken与一些cookie 进行比较。然后您可以尝试使用此 authToken 和表单中隐藏的其他值进行 POST。
标签: python python-3.x post python-requests