2010-12-07 19 views
2

Linuxのコマンドラインを使用して、フォームをアップロードしてWebサイトにファイルをアップロードする必要があります。Linuxのコマンドラインを使用してフォームをアップロードしてアップロードするファイル

私はいくつかの検索を行いました。私はこのスクリプトをPythonで書いています。

私はまずウェブサイトにログインし、クッキーを保存してからフォームデータを投稿し、そのウェブサイトにファイルをアップロードする必要があります。ここで

が詳細である:

ページでは、ウェブサイトのログは次のとおりです。hxxp://www.example.com/login.html

<form action="/signin.html" method="post"> 
Username:<input type="text" name="username"> 
Password:<input type="password" name="password"> 
<input type="hidden" name="referer" value="http://www.example.com/"> 
<input type="submit" name="submit" value=" Login "> 
</form> 

アップロードページは以下のとおりです。hxxp://www.example.com.com/upload/

<form action="http://www.example.com:81/upload/upload.cgi" enctype="multipart/form-data" method="post"> 
<input type="hidden" name="MAX_FILE_SIZE" value="314572800" /> 

File: 
<input name="filename[]" type="file" /> 
Type: 
<input type="radio" name="typeID" value=1> Option One 
<input type="radio" name="typeID" value=2> Option Two 
<input type="radio" name="typeID" value=3> Option Three 
Title: 
<input type="text" name="title" > 
Description: 
<textarea name="description"></textarea> 

<input type="checkbox" name="agree" value="agree_terms"> I Accept Terms 

<input type="submit" value="Upload It!"> 
</form> 

このフォームはラジオ、テキスト、チェックボックスが含まれています、ファイルなどの入力。

お願いします。

私は、Python、wget、PHPがインストールされたCentOS 5.5を使用しています。これはPythonスクリプトで行うことができると思います。

ありがとうございます!あなたの答えは私が受け取った最高のクリスマスプレゼントになります。 ;)

答えて

2

このタスクを実行するには、もちろんurllib2を使用できます。クッキーを扱う方法とファイルをアップロードする方法に関するドキュメントを読んでください。しかし、私はmechanizeを使用すると多くの時間を節約できると思います。 Mechanizeでは、ブラウザを使用しているかのようにWebページを扱うことができます。

import mechanize 

br = mechanize.Browser() 
br.open("http://www.example.com/") 
br.select_form() 
br['username'] = 'user' 
br['password'] = 'pass' 
br.submit() 

etc. 
関連する問題