urllibとurllib2をPythonで使用すると、フォームの提出を行うことができます。
まず、辞書を作成します。
formdictionary = { 'search' : 'stackoverflow' }
urllibのurlencodeメソッドを使用して、この辞書を変換します。
params = urllib.urlencode(formdictionary)
あなたは今urllib2のでURLリクエストを作成し、最初のパラメータがURLであることで、二次パラメータとして変数のparamsを渡すことができます。
私の理解から、urlencodeは自動的に辞書をhtmlでエンコードし、入力タグを追加します。名前属性であるためにはキーが必要です。これは、name属性の値になるように辞書内の値をとります。 Urllib2はこのHTMLコードをHTTP POSTリクエストで送信します。
問題:あなたが提出されているHTMLコードはname属性を持つHTMLタグ入力と標準的な方法でフォーマットされている場合
これは大丈夫です。
<input id="32324" type="text" name="search" >
しかし、htmlコードが正しくフォーマットされていないという状況があります。また、HTML入力タグには、name属性のないid属性しかありません。 id属性を使用して入力タグにアクセスする別の方法がありますか?それとも別の方法があるのでしょうか?
解決策:
?
私はアイマンが何かに乗っているかもしれないと思います。入力フォームは、誤った方向である可能性があります。 Javascriptはsubmissionイベントonclickを処理します。私はどのようにそのイベントをPythonで作るのか分かりません。このトピックについてもう少し詳しく調べようと思います。 –
@Ayman:テストしてくれてありがとう - 私は間違っていました。私は誤解を招くような答えを削除しました。 – RichieHindle
JavaScriptコードをエミュレートする簡単な方法の1つは、HTTPヘッダーを調べてブラウザから送信された内容を確認し、urllibを使用して同じクエリを送信することです。この点で、Firefox用のLive HTTPヘッダー拡張が役立ちます。 https://addons.mozilla.org/en-US/firefox/addon/3829 –