gpt4 book ai didi

python - 使用 mechanize 提交没有控件名称的表单

转载 作者:太空狗 更新时间:2023-10-30 02:33:20 24 4
gpt4 key购买 nike

我正在尝试使用 mechanize for python 提交表单,但我需要填写的表单控件没有分配名称。

<POST https://sample.com/anExample multipart/form-data
<HiddenControl(post_authenticity_token=) (readonly)>
<HiddenControl(iframe_callback=) (readonly)>
<TextareaControl(<None>=)>>

我试图编辑的控件是上述对象中的最后一个控件,<TextareaControl(<None>=)> .

我查看了文档,但似乎找不到为该控件赋值的方法,因为它没有与之关联的名称。

  forms = [f for f in br.forms()]
print forms[2].controls[5].name

输出“无”

最佳答案

所以,我承认,这个问题很难弄清楚。不得不从字面上看一下 mechanize code itself弄清楚。不幸的是,我无法在没有 name 属性的实际表单项上对其进行肯定的测试,但如果您提供要拉取的站点我可以这样做,或者您可以自己做.

老实说,表单对象的可用性并没有很好地实现。我能看到你编辑无名表单控件值的唯一方法是使用 formset_value method :

class HTMLForm:

# <...>

set_value(value,
name=None, type=None, kind=None, id=None, nr=None,
by_label=False, # by_label is deprecated
label=None)

因此,您在这里设置要查找的控件的方法是使用 nr 参数来获取它,使用表单中控件的索引。不幸的是,您不能使用负整数从后面获取控件,因此要获取最后一个表单,您必须按照 nr=len(myform.controls)-1 .

无论如何,您可以在这里做的是使用 set_value 方法,您应该这样设置:

forms[2].set_value("LOOK!!!! I SET THE VALUE OF THIS UNNAMED CONTROL!", 
nr=5)

这应该适合您。让我知道进展如何。

关于python - 使用 mechanize 提交没有控件名称的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13965285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com