以上の1ボタンを提出してフォームを送信する方法。ウェブサイトへのPOSTを送信します。 (パイソン)

StackOverflow https://stackoverflow.com/questions/1830413

質問

私は、ウェブサイトにログインし、提出することができますのPython Mechanizeのを使用してスクリプトを作成していますフォーム。 ただし、このフォームは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

問題が解決します。

のPython Mechanizeのを使用しないでください。それはあなたが他のポストのデータを送信させません。

何らかの理由で、現在、問題のポストデータが十分ではありません。サーバーに送信する必要がある他のものがあります。

そのため、あなたはを通して、すべてのデータを送信するために定期的なオープナー/をCookieJarメソッドを使用する必要があります。 私はFirebugのから(件名、メッセージ、E、アイデンティティ以外)(NETを見ている)。

追加データを得ました

他のヒント

私はあなたと同じ問題を抱えています。

最初の二つの送信ボタンを持つフォームは、第二送信し、プレビューであった。

は、まず、最初のボタンを使用していた機械化、私が使用してサーバーの回答を見ることができました。

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

私は機能を提出機械化パラメータとして送信ボタンの名前を入れて、それが

!を働きました
response = browser.submit("submit")

それをテストし、それはあまりにもあなたのために働く必要があります!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top