Python Mechanize:如果两个在网页中具有相同的名称,如何选择下拉列表?

时间:2011-09-18 04:33:16

标签: python mechanize

我正在尝试进行机械化解析的html是:

<select id="topic_id2" name="topics[]" title="blabla" tabindex="4" class="createSelect">
here go options

但是在它下面还有另一个下拉列表,其中包含以下代码:

<select id="topic_id3" name="topics[]" title="optional" tabindex="5" class="createSelect">

现在如果它有帮助,我不需要从后者中选择任何值,因为它是可选的。

当我尝试

br = mechanize.Browser()
br.select_form(name="form")
br["topics[]"] = ["Internet"]

我明白了:

mechanize._form.AmbiguityError: more than one control matching name 'topics[]'

有没有办法可以使用mechanize.Browser()保留基于其id的控件(同时保留所有其他表单语法)?

由于

1 个答案:

答案 0 :(得分:1)

mechanize的外部文档很小,仅包含一些示例,但代码内文档更为广泛。

未对此进行测试,使用名为HTMLForm的{​​{1}}实例,您应该可以调用form并获得所需内容。我不确定如何仅使用form.find_control(id="topic_id3")对象执行此操作,但您是否尝试过Browser