使用Python机械化模块填充textarea

时间:2010-05-21 10:01:38

标签: python textarea mechanize

有没有办法用Python的机械化模块填写表单的一部分textarea?

3 个答案:

答案 0 :(得分: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 :(得分: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,我们有一个解释。 Mechanize TextControl涵盖(以及其他)TEXTAREA表单元素。

#---------------------------------------------------
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"

答案 2 :(得分:1)

您可以先检查元素表单,然后使用

完成页面中的表单数量
for form in br.forms():
    print form