如何打印无线电控制信息

2 投票
2 回答
609 浏览
提问于 2025-04-16 17:15

我正在使用 mechanize 模块从一个网页上获取信息。这个网页有一个单选框的部分,我在继续到下一页之前需要先选择一个选项。我可以通过给它赋值来轻松选择,但我却无法获取候选单选按钮的值。我的表单中 RadioSelect 的部分如下:

<RadioControl(rdoSelect=[1634,ABX EXPRESS, 16650,XYZ EXP])>

我可以通过以下方式轻松设置值:

br.form['txtSource']='1634,ABX EXPRESS'

我想要的是获取这个列表:

[1634,ABX EXPRESS, 16650,XYZ EXP]

更新:

当我输入

print br.form['rdoSelect']

结果是 []

我可以使用

print br.form.possible_items("rdoSelect")

但它给我的结果是这个

/usr/lib/python2.5/site-packages/ClientForm.py:2984: DeprecationWarning: [item.name for item in self.items]
  return c.possible_items(by_label)

2 个回答

0

首先,弃用警告并不是错误。通常这意味着你正在运行的库或代码是为早期版本的Python写的。

我不太确定txtSource和rdoSelect之间的关系(看起来你希望它们包含相同的值?)。不过,单选按钮通常有一个符号值,而不是显示的文本。你能提供一段HTML代码的例子吗?

3

不要使用:

print br.form.possible_items("rdoSelect")

mechanize建议使用:

options = [item.name for item in form.find_control('rdoSelect').items]

使用示例:

#!/usr/bin/python
import re
import mechanize
br = mechanize.Browser()
r = br.open("http://www.htmlcodetutorial.com/forms/_INPUT_TYPE_RADIO.html")
form = mechanize.ParseResponse(r, backwards_compat=False)[2]
options = [item.name for item in form.find_control('pizzasize').items]
print options

结果是:

['S', 'M', 'L']

撰写回答