Python Mechanize选择一个没有名称的表单

时间:2010-04-06 04:01:25

标签: python html forms mechanize

我正在尝试机械化从页面中选择一个表单,但有问题的表单在html中没有“name”属性。我该怎么办?当我尝试使用

br.select_form(name = "")

我得到的错误是没有使用该名称声明表单,并且该函数需要输入名称。页面上只有一个表单,是否有其他方式可以选择该表单?

2 个答案:

答案 0 :(得分:54)

尝试:

br.select_form(nr=0)

选择第一个表单

在Mechanize source中,

def select_form(self, name=None, predicate=None, <b>nr=None</b>):
    """
    ...
    nr, if supplied, is the sequence number of the form (where 0 is the
    first).
    """

答案 1 :(得分:0)

如果你想为多个表单执行代码而不管它们的名称是什么,你可以循环遍历每个表单,让你的脚本知道下一个表单将起作用。

currentForm = 0
for form in br.forms(): # Iterate over the forms
        br.select_form(nr = currentForm) # Select the form
        '''
        The code you want to run for every form
        '''
        currentForm += 1 # Add 1 to the current working form so the script knows what form is working next