我试图填写"姓名"来自特定网站的形式,我是机械化新手,我不确定如何使用它,我已经尝试了很多解决方案......但这是我到目前为止所做的:
import mechanize
import cookielib
import re
NAME = "whatever"
def login():
Browser = mechanize.Browser()
cj = cookielib.LWPCookieJar()
Browser.set_cookiejar(cj)
Browser.set_handle_robots(False)
Browser.set_handle_gzip(True)
Browser.set_handle_redirect(True)
Browser.set_handle_referer(True)
Browser.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
Browser.open('http://arkhamnetwork.org/community/login/login')
print [form for form in Browser.forms()][0] # Tried to see all forms
Browser.select_form(nr=0)
Browser.form["cdf254f828f75d57e0320558987a137d"] = NAME
Browser.submit()
return browser
login()
我不断收到此错误:
mechanize._form.ControlNotFoundError: no control matching name 'cdf254f828f75d57e0320558987a137d'
这是我得到的:print [form for form in Browser.forms()][0]
:
<CheckboxControl(visible=[*1])>
<HiddenControl(_xfToken=) (readonly)>>
但是在页面源中,第一个表单的名称是:cdf254f828f75d57e0320558987a137d
问题:
我该如何解决这个问题?有没有其他正确的方法来填写Mechanize中的表单?