我创建使用机械化的Python脚本,可以登录到网站,并提交表单。 然而,这种形式有3个提交按钮(预览,邮政和取消)。我已经习惯了只有一个按钮...

这是以下形式:

<TextControl(subject=Is this good for the holidays? Anyone know about the new tech?)>
  <IgnoreControl(threads=<None>)>
  <TextareaControl(message=Im new to technology stocks.)>
  <SelectControl(identity=[*annamae41g])>
  <RadioControl(E=[5, 4, *3, 2, 1, 0])>
  <SubmitControl(SubmitPreview=Preview Message) (readonly)>
  <SubmitControl(SubmitPost=Post Message) (readonly)>
  <SubmitControl(SubmitCancel=Cancel) (readonly)>
  <HiddenControl(action_btn=) (readonly)>
  <HiddenControl(_charset_=) (readonly)>
  <HiddenControl(.crumb=4DxnFEwMIGG) (readonly)>
  <HiddenControl(r=/Stocks_(A_to_Z)/Stocks_G) (readonly)>
  <HiddenControl(bn=25263) (readonly)>
  <HiddenControl(<None>=annamae41g) (readonly)>>

和这是我的代码:

br.open(newtopic_url)
br.select_form(name="postmsg")
br.form['subject'] = "Is this good for the holidays? Anyone know about the new tech?"
br.form['message'] = "Im new to technology stocks."
br.form['E'] = ['3']
br.form['identity'] = ['annamae41g']
print br.form
br.submit()

如果我运行此脚本...它不会工作。什么都没发生。我假设,因为它有3个形式提交按钮?或者是另外一个问题?

有帮助吗?

解决方案 2

问题解决了。

不要使用蟒机械化。它不会让你发其他职位数据。

出于某种原因,在目前的问题后数据是不够的。有迹象表明,需要被发送到服务器的其他东西。

因此,必须使用常规的开启器/ cookiejar方法通过发送所有的数据。 我得到的附加数据(除了主题,邮件,E,同一性)从萤火虫(看NET)

其他提示

我有同样的问题,因为你。

具有两个甲形式提交按钮,第一个是预览,第二个是提交。

首先,机械化仅使用所述第一按钮时,我可以使用看到服务器应答

response = browser.submit()
print response.read()

我把提交按钮的名称作为参数传递给机械化提交功能,和它的工作!

response = browser.submit("submit")

测试了一下,应该为你工作了!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top