2010-04-06 24 views
29

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

br.select_form(name = "") 

我得到的错误,没有声明与该名称的形式,该功能需要一个名称输入。网页上只有一种表单,是否有其他方式可以选择该表单?

回答

53

尝试:

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). 
    """ 
+0

谢谢。这只适用于我的实例只有一种形式。出于好奇,你认为它可以用多种形式来完成?要么是所有未命名的,要么是一些已命名的,还有一些未命名的? – 2010-04-06 04:13:00

+1

@mvid,是的,一个文件可以有多种形式,名称也是可选的,机械化应该没有问题。 – YOU 2010-04-06 04:18:05

+0

我们可以从表单中获得谓词值吗? – 2010-11-03 16:17:39

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 
相关问题