我正在尝试登录portfolio123.com使用 Mechanize 。由于某种原因,我没有收到 LoginPassword 字段。
这是到目前为止的代码:
import mechanize
br = mechanize.Browser()
br.select_form(nr=0)
br['LoginUsername'] = user_name
br['LoginPassword'] = password # This line does not work yet.
最后一行不起作用。未找到该控件。我们可以通过运行以下代码来确认这一点:
br.form = list(br.forms())[0]
for control in br.form.controls:
print "type=%s, name=%s value=%s" % (control.type, control.name, br[control.name])
返回:
type=text, name=LoginUsername value=xxxxx
type=submit, name=Login value=Login
type=hidden, name=url value=index.jsp
但是当我在浏览器中打开网址时,密码字段就在中。那么我该如何实现呢?
最佳答案
尚不清楚为什么 Mechanize
看不到 LoginPassword
字段。我尝试了多种方法:设置一个User-Agent
,尝试过 prettifying the response with BeautifulSoup
思考 HTML 解析问题,尝试动态修改密码输入属性等。
作为解决方法,robobrowser
可以毫无问题地处理登录表单:
import robobrowser
url = "https://www.portfolio123.com/login.jsp"
browser = robobrowser.RoboBrowser()
browser.open(url)
form = browser.get_form()
form['LoginUsername'] = 'Username'
form['LoginPassword'] = 'Password'
browser.submit_form(form)
关于python - 使用 Python 和 Mechanize 登录网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655568/