蟒蛇。要求。帖子。通常的登录方式都不起作用

时间:2018-04-13 15:16:33

标签: python logging request response http-status-code-403

尝试登录此网站" websim.worldquantchallenge.com/login" ;,但通常的方式不起作用。在大多数情况下和网站,我们可以使用下一种形式:

session = requests.session()
url = 'https://websim.worldquantchallenge.com/login'
data = {
    'EmailAddress': '<YOUR_MAIL>', 
    'Password': '<YOUR_PASS'
}
result = session.post(url, data = data)
print(result)

但在这种情况下,我得到了回复403&#34;。

模拟身份验证的方式为&#34; HTTPBasicAuth&#34;或&#34; HTTPDigestAuth&#34;也不行。那么如何在这种情况下登录呢?

3 个答案:

答案 0 :(得分:1)

首先,您必须确保网站的政策允许通过代码登录

如果是这样,帖子的网址应为:

url = 'https://websim.worldquantchallenge.com/login/process'

答案 1 :(得分:0)

据我所知,表单是由javascript处理的,所以你真的不知道数据的用途是什么。对于请求似乎无效的网站问题,我使用过selenium。它使用chrome驱动程序在浏览器中提取页面。然后,您可以按类或ID查找元素,并填写表单并单击“提交”。

很多网站都在转向这种javascript交互方式,以防止自动代码废弃其网站。我也看到了验证码的代码,所以你可能必须处理它,如果它出现。

答案 2 :(得分:0)

我建议通过网站登录,激活开发人员工具并查看请求/响应内容。 无法使用常规方法登录的一些可能原因:

  • 表单已更改(例如'EmailAddress'替换为'Username',表单中的新字段)
  • 更改了身份验证方法(例如,新网址,OAuth2 ...)
  • 网站通过过滤用户代理或在登录表单中添加隐藏字段来阻止程序访问

并且,一个基本问题:您是否看过403(print(result.text))收到的错误消息?