2010-11-27 4 views
2

pythonを使用してWebページに記入してフォームを提出したいと思います。私がインタラクトしたいフォームには、JavaScriptを使用して埋め込まれた複数のドロップダウンボックスがあります。私はmechanizeライブラリを見てきましたが、JavaScriptは扱いません。フォームと対話するための別のライブラリ/メソッドを提案できますか?Python - HTMLフォームを記入して提出する

乾杯、

ピート

+0

どのようにJavaScriptに入力されますか?それはjsonまたはxmlの要求を実行し、それからそれらを移入するか、それは現場でそれらを作るか?どこから来たのですか?私はこのようなことをする必要があるとき、私はちょうどjavascriptと同じ要求を実行し、選択肢を得るために応答を解析します。 – aaronasterling

+0

私の知る限りでは、フォームは、ページのソースコードで使用可能なJavaScript Arrayから実装されています。私はこの配列がどのように設定されるのか分かりません。フォームには「日付」ドロップダウンがあり、変更すると別のドロップダウンの値が変更されます。 – Peter

答えて

2
  1. Selenium RCのか風車(http://www.getwindmill.com/)

  2. フォームの返却GETやPOSTの値を調べます。 urllib2を使用して合成要求を直接送信します。

0

フォームを効果的に使用すると、送信ボタンを押した後(または多分どこか別の場所)のサーバーに戻って情報を送信します。

フォームと直接やりとりする方法はわかりませんが、フォームを送信するのと同じ方法でサーバーに情報を送り返すことができます(実際に送信したり、物事を押したりすることなく)。

たとえば、フォームによっては、フォームに指定されたパラメータ(およびその値)が、フォームの送信後にHTTPリクエストのURLの末尾に配置されます。他の人は、パラメータをHTTPリクエストの本文に入れます。 PHPでは、PHPが自動的にこれらのパラメータを(グローバル配列に)取り出します。

この場合、フォームのソースコードにある名前/値を調べるだけで、独自のバージョンのパラメータ(名前/値)をHTTPリクエストに入れることができます。

それは何の意味を成していない場合、フォームは申し訳ありません

... JavaScriptを使用してサーバーにその情報を送信するかもしれないが。

+2

「GET」リクエストまたは「POST」リクエストのいずれかを使用している限り、フォームがjavascriptを介して提出されるかどうかは関係ありません。 – aaronasterling

関連する問題