我正在尝试登录 login.live.com,但 Mechanize 无法识别该页面上有一个表单。有没有人有什么建议?
br=mechanize.Browser()
br.open('https://login.live.com/')
br.select_form(nr=0)
这导致:
mechanize._mechanize.FormNotFoundError:没有匹配 nr 0 的表单
当该页面上明显有表格时。
我正在尝试登录 login.live.com,但 Mechanize 无法识别该页面上有一个表单。有没有人有什么建议?
br=mechanize.Browser()
br.open('https://login.live.com/')
br.select_form(nr=0)
这导致:
mechanize._mechanize.FormNotFoundError:没有匹配 nr 0 的表单
当该页面上明显有表格时。
尝试按名称获取表单,而不是使用br.select_form(name="f1").
(我从页面源获得了表单名称 - 我假设您想要登录表单。)
问题是表单不在作为对 HTTP GET 请求的响应而交付的 html 中。由于在浏览器中执行了一个 javascript 脚本,因此稍后会创建它。
有关如何获取已动态生成的内容的更多信息,请查看此问题的答案。
r = br.open('https://login.live.com/')
r.get_data()
# outputs:
# ...
# Windows Live ID requires JavaScript to sign in. This web browser either does not support JavaScript, or scripts are being blocked
# ...
我没有找到解决方法,建议您改用 Selenium/webdriver。