我正在尝试进行机械化解析的html是:
<select id="topic_id2" name="topics[]" title="blabla" tabindex="4" class="createSelect">
here go options
Run Code Online (Sandbox Code Playgroud)
但是在它下面还有另一个下拉列表,其代码如下:
<select id="topic_id3" name="topics[]" title="optional" tabindex="5" class="createSelect">
Run Code Online (Sandbox Code Playgroud)
现在,如果它有帮助,我不需要从后者中选择任何值,因为它是可选的.
当我尝试
br = mechanize.Browser()
br.select_form(name="form")
br["topics[]"] = ["Internet"]
Run Code Online (Sandbox Code Playgroud)
我明白了:
mechanize._form.AmbiguityError: more than one control matching name 'topics[]'
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用mechanize.Browser()保留基于其id的控件(同时保留所有其他表单语法)?
谢谢
外部文档mechanize非常小,仅包含几个示例,但代码内文档要广泛得多。
没有测试过这一点,通过一个HTMLForm名为的实例,form您应该能够调用form.find_control(id="topic_id3")并获得您想要的东西。我不知道如何仅用一个Browser对象来做到这一点,但你尝试过吗br.find_control(id="topic_id3")?