Python Mechanize:如何在网页中选择两个同名的下拉列表?

5 投票
1 回答
3302 浏览
提问于 2025-04-17 02:31

我想让 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[]'

有没有办法让我通过 id 来选择一个控件,使用 mechanize.Browser()(同时保留其他表单的语法)?

谢谢

1 个回答

1

关于mechanize的外部文档其实很少,里面只有几个例子,但代码内部的文档要详细得多。

虽然我没有测试过,不过如果你有一个叫formHTMLForm实例,你应该可以用form.find_control(id="topic_id3")来找到你想要的东西。我不太确定如果只有一个Browser对象该怎么做,但你试过用br.find_control(id="topic_id3")吗?

撰写回答