我试图打开这个website,并使用python中的requests
库访问仪表板的信息。这是一种网络垃圾,但问题是我无法登录。我尝试了很多不同的方法来发布我的登录凭证,但是到目前为止没有任何效果。在
网站-https://www.handy.com/login
登录HTML-<input autofocus="autofocus" class="string email required" id="user_session_email" name="user_session[email]" required="required" size="50" type="email">
密码HTML-<input class="password required" id="user_session_password" name="user_session[password]" required="required" size="50" type="password">
代码:
首先,我尝试使用用户名和密码的name属性
import requests
url = "https://www.handy.com/login"
payload = {"user_session[email]": "email or username", "user_session[password]": "password"}
r = requests.post(url, data=payload)
print r.status_code
print r.reason
也尝试使用username and password
的id属性,但问题是相同的。状态代码是500
,原因是Internal Server Error
。我知道如何创建持久性会话,但如果你能帮助我登录网站,将不胜感激。在
首先,当需要身份验证并且必须为进一步的请求维护会话时请求.会话对象是这样做的预期方式。在
这包括创建一个session对象并使用它发送POST请求。在
会话=请求.会话() r=会话.post(url,data=有效负载)
另一个问题是,您发送的有效负载与浏览器不同(或者,更重要的是,正如服务器期望的那样),这就是内部服务器错误所指示的。在
如果您使用的是Firefox,您可以使用Ctrl-Shift-Q打开网络监视器窗口,选择浏览器发送登录详细信息时发出的POST请求,然后转到“params”选项卡,您将看到如下内容:
因此,您首先需要做的是使用session对象向登录页面发出
GET
请求。从您刚刚收到的这个请求的HTML中,您需要解析authenticity_token
。然后,您可以使用此令牌以及电子邮件和密码发出对站点进行身份验证的POST请求。在相关问题 更多 >
编程相关推荐