2010-12-07 92 views
2

我需要使用Linux命令行發佈表單和上傳文件到網站。使用Linux命令行發佈表單和上傳文件

我已經做了一些搜索,我想用Python編寫腳本。

我需要先登錄網站,保存cookie,然後發佈表單數據並上傳文件到該網站。

以下是詳細信息:

該網站的登錄頁面是: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> 

此表單包含廣播,文本,複選框,文件等輸入。

請給我一些提示!

我正在使用CentOS 5.5,使用Python,wget,PHP安裝。我認爲這可以在Python腳本中完成。

非常感謝!您的答案將是我收到的最好的聖誕禮物。 ;)

回答

2

你當然可以用urllib2來完成這個任務。閱讀有關如何處理cookie以及如何上傳文件的文檔。不過,我認爲使用mechanize可以節省很多時間。機械化使您可以像使用瀏覽器一樣處理網頁:

import mechanize 

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

etc.