为机械化创建自定义表单

时间:2013-04-15 19:42:52

标签: javascript python forms mechanize

我在网站上有一个不能直接选择的表单(因为它嵌入在javascript中)。因此,通过机械化浏览器对象选择它是不可能的。我想要做的是创建一个类似于那个的表单并使用浏览器对象提交它。

表单是

<form method="POST" action="Action.php?action=338&n=66&t=mine">
<input id="Mine66" type="hidden" value="22" name="duree">
<button class="boutonsGeneral" value="submit" type="submit" name="travail">
<span class="infoBoutonsGeneral" title="">
Work
<span id="dureeMine66" class="boutonsGeneral_duree boutonsGeneral_dureePlus">22 hours</span>
</button>
</form>

我使用了firebug,这是信息。发布到的网址为http://www.renaissancekingdoms.com/Action.php?action=338&n=66&t=mine

Parameters
  

duree 22

     

提交

Request Headers From Upload Stream
  

内容长度:23

     

内容类型:application / x-www-form-urlencoded

到目前为止我所做的是我设法登录该网站并执行以下操作

form = mechanize.HTMLForm('http://www.renaissancekingdoms.com/Action.php?action=338&n=66&t=mine', method='POST')

form.new_control('duree', 'hidden', {
    'id' : 'Mine66',
    'value' : '22'})
form.fixup()
br.form = form
br.submit()

但这似乎不起作用。我出错的任何想法?

1 个答案:

答案 0 :(得分:1)

您是否尝试直接转到将帖子数据作为参数传递的链接?像这样:

r = opener.open('http://example.com/', data)

其中数据是作为词典的帖子数据