2010-05-21 118 views

回答

5

forms reference有幾個在response對象中填充文本控件的示例。

一個相關的報價:

# The kind argument can also take values "multilist", "singlelist", "text", 
# "clickable" and "file": 
# find first control that will accept text, and scribble in it 
form.set_value("rhubarb rhubarb", kind="text", nr=0) 

kind參數可以與form.find_control()form.set_value()和方法可用於定位"text"控件。

挖一點點進mechanize _form.py source,我們有一個解釋。機械化TextControl涵蓋(其中包括)​​3210表單元素。

#--------------------------------------------------- 
class TextControl(ScalarControl): 
    """Textual input control. 

    Covers: 

    INPUT/TEXT 
    INPUT/PASSWORD 
    INPUT/HIDDEN 
    TEXTAREA 

    """ 
    def __init__(self, type, name, attrs, index=None): 
     ScalarControl.__init__(self, type, name, attrs, index) 
     if self.type == "hidden": self.readonly = True 
     if self._value is None: 
      self._value = "" 

    def is_of_kind(self, kind): return kind == "text" 
6

你可以做這樣的事情

import mechanize 

br = mechanize.Browser() 
br.open("http://pypi.python.org/pypi") 
br.select_form("searchform") 
br['term'] = "Mechanize" 
response = br.submit() 

br['term'] = "Mechanize"是相關行。

你真的需要接受你的問題的一些答案。

1

你可以先檢查元素的形式,以及如何在頁面多種形式可以

for form in br.forms(): 
    print form 
完成