0

我正在尝试使用mechanicalsoup将用户名和密码输入到表单中,这一切似乎都可以正常工作,但输入后

response = browser.submit_selected()
print(response.text)

它只是再次返回登录页面。

我尝试在代码末尾使用 browser.launch_browser() 进行调试,它只显示登录页面,没有在用户名和密码字段中输入任何内容。

我是否完全错过了我想做的事情?登录页面是:https ://www.puregym.com/Login/ 我的代码如下:

import mechanicalsoup


browser.open("https://www.puregym.com/Login/")
browser.select_form('form[id="loginForm"]')


browser["email"] = "test@gmail.com"
browser["pin"] = "12345678"

response = browser.submit_selected()
browser.launch_browser()
4

1 回答 1

0

此登录页面似乎使用了 MechanicalSoup 不支持的 JavaScript。请参阅此常见问题解答

最大的好处是它<form id="loginForm" ...>没有action属性,如果它存在,它将告诉浏览器在哪里提交表单数据作为非 JavaScript 上下文中的 HTTP 请求。

另一种判断页面需要 JavaScript 的方法是在浏览器中禁用它(例如,在 Chrome 中,您可以使用 Chrome 开发人员工具执行此操作),然后尝试登录。在禁用 JavaScript 的情况下浏览网站可能会给您对替代登录方法的一些见解,但可能的答案是您将需要使用支持 JavaScript 的工具,例如 Selenium。

于 2020-02-07T18:22:10.320 回答