在Mechanize中获取窗体控件的标签

Obtaining the label of the control of a form in Mechanize

我正在抓取网站以分析其中的每个表单,以找到一个通用模式,使我能够自动向这些网站提交搜索查询。到目前为止,许多表单的名称不存在或不清楚,因此我需要废弃相关标签以获得控件(字段)的含义。

Mechanize support site指出在搜索特定标签时可以从网页中的表单中提取控件:

control = form.find_control(label="select a cheese")

我正在寻找从控件获取标签的解决方案。 Mechanize 的文档很差 but the answer to this question 提供了 link 更详细的文档,但我一直无法在那里找到我的答案。

有没有人设法做到这一点或找到解决方法?

在将数据自动提交到表单时,我曾经不得不做类似的事情。我获得了控件的名称和标签列表:

names = []    
labels = []     
for c in br.form.controls.__iter__():
    names.append(c.name)
    labels.append(c._label)

使用这些列表,您可以 select 形成如下形式:

control = form.find_control(name=names[0])