【发布时间】:2011-02-04 16:06:06
【问题描述】:
我试图让 mechanize 从页面中选择一个表单,但有问题的表单在 html 中没有“名称”属性。我该怎么办?当我尝试使用时
br.select_form(name = "")
我收到错误,没有使用该名称声明任何表单,并且该函数需要名称输入。页面上只有一个表单,我可以通过其他方式选择该表单吗?
【问题讨论】:
标签: python html forms mechanize
我试图让 mechanize 从页面中选择一个表单,但有问题的表单在 html 中没有“名称”属性。我该怎么办?当我尝试使用时
br.select_form(name = "")
我收到错误,没有使用该名称声明任何表单,并且该函数需要名称输入。页面上只有一个表单,我可以通过其他方式选择该表单吗?
【问题讨论】:
标签: python html forms mechanize
试试:
br.select_form(nr=0)
选择第一个表单
在机械化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).
"""
【讨论】:
如果您想为多个表单执行代码,无论它们的名称是什么,您都可以遍历每个表单,让您的脚本知道接下来哪个表单将工作。
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
【讨论】: