我尝试使用Mechanize登录portfolio123.com。出于某种原因,我没有得到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
但是当我在浏览器中打开网址时,密码字段就是。那么我该怎么做呢?
答案 0 :(得分:1)
目前尚不清楚为什么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)