如何打印无线电控制信息

时间:2011-05-09 04:16:52

标签: python forms mechanize

我正在使用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 :(得分:3)

而不是:

print br.form.possible_items("rdoSelect")

机械化说要使用:

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']

答案 1 :(得分:0)

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

我不确定txtSource是如何与rdoSelect相关的(似乎你希望它们包含相同的值?)。但是,单选按钮通常具有符号值而不是显示的文本。你能提供HTML代码的样本吗?