正确使用机械化与Python填写HTML表单

时间:2016-04-05 16:46:22

标签: python html forms mechanize

我试图填写"姓名"来自特定网站的形式,我是机械化新手,我不确定如何使用它,我已经尝试了很多解决方案......但这是我到目前为止所做的:

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中的表单?

0 个答案:

没有答案