TIM*_*MEX 5 python url http mechanize
我正在使用Python Mechanize打开一个网站,填写表格并提交该表格.它实际上非常简单.它工作,直到我遇到单选按钮和"选择"输入框.
br.open(url)
br.select_form(name="postmsg")
br.form['subject'] = "Is this good for the holidays? "
br.form['message'] = "I'm new to technology."
br.form['E'] = '0'
br.submit()
br.form['E'] = '0'
File "build/bdist.linux-x86_64/egg/ClientForm.py", line 2897, in __setitem__
File "build/bdist.linux-x86_64/egg/ClientForm.py", line 2092, in __setattr__
File "build/bdist.linux-x86_64/egg/ClientForm.py", line 2100, in _set_value
TypeError: ListControl, must set a sequence
Run Code Online (Sandbox Code Playgroud)
为什么我收到此错误?为什么我不能像文本框那样设置E?(E是单选按钮)
编辑:根据Web Developer的说法,这是表单.
Elements
Index Id Name Type Value Label Size Maximum Length State
0 subject subject text 35
2 message message textarea
3 identity identity select 1
13 action_btn hidden
14 _charset_ hidden
16 r hidden /Stocks_(A_to_Z)/Stocks_G
9 E radio 0
Checked
8 E radio 1
15 .crumb hidden 1n1Yo3MQae3
7 E radio 2
17 bn hidden 25263
6 E radio 3
5 E radio 4
4 E radio 5
12 SubmitCancel SubmitCancel submit Cancel
1 mbpostthreads threads button Check Existing Topics First
11 SubmitPost SubmitPost submit Post Message
10 SubmitPreview SubmitPreview submit Preview Message
18 yIdCoreIdUser hidden annamae41g
Run Code Online (Sandbox Code Playgroud)
单选按钮和复选框可以具有与其他元素不同的行为.这取决于他们的名字和身份.
如果项目具有相同的名称,请尝试执行以下操作:
br.find_control(name="E").value = ["0"]
Run Code Online (Sandbox Code Playgroud)
另一种选择是:
form.find_control(name="E", kind="list").value = ["0"]
Run Code Online (Sandbox Code Playgroud)
最后,这可能会奏效:
br["E"] = ["0"]
Run Code Online (Sandbox Code Playgroud)
(我有一段时间没有使用机械,所以我不记得了).
| 归档时间: |
|
| 查看次数: |
3778 次 |
| 最近记录: |