Python 使用mechanize提交没有控件名称的表单
我试图使用mechanize for python来提交表单,但我需要填写的表单控件没有指定名称Python 使用mechanize提交没有控件名称的表单,python,mechanize,Python,Mechanize,我试图使用mechanize for python来提交表单,但我需要填写的表单控件没有指定名称 <POST https://sample.com/anExample multipart/form-data <HiddenControl(post_authenticity_token=) (readonly)> <HiddenControl(iframe_callback=) (readonly)> <TextareaControl(<Non
<POST https://sample.com/anExample multipart/form-data
<HiddenControl(post_authenticity_token=) (readonly)>
<HiddenControl(iframe_callback=) (readonly)>
<TextareaControl(<None>=)>>
输出“无”所以,我承认,这一点很难理解。必须仔细看一眼才能弄明白。不幸的是,如果没有
name
属性,我无法在实际表单项上确定测试它,尽管如果您提供您试图拉取的站点,或者您可以自己做,我可以这样做
表单对象的可用性实现得不是很好。我能看到的唯一方法是使用表单的:
类HTMLForm:
#
设置_值(值,
名称=无,类型=无,种类=无,id=无,nr=无,
by_label=False,#by_label不推荐使用
标签=无)
因此,在这里设置要查找的控件的方法是使用nr
参数获取它,使用表单中控件的索引。不幸的是,您不能使用负整数从后面抓取控件,因此要抓取最后一个表单,您必须按照nr=len(myform.controls)-1
的思路进行操作
在任何情况下,您都可以在这里使用set\u value
方法,您应该这样设置:
forms[2]。设置_值(“看!!!!我设置了这个未命名控件的值!”,
nr=5)
这应该对你有用。让我知道进展如何
forms = [f for f in br.forms()]
print forms[2].controls[5].name