2013-04-08 85 views
1

我有一個電子郵件客戶端。我檢查,我需要做一些電子郵件(移動,detele,雞蛋),像這樣使用python機械化的「複選框」:Python機械化複選框與下拉提交

br.open(login_url) 
br.open(url_1) 
br.select_form(nr=0) 
for i in range(0, len(br.find_control(type="checkbox").items)): 
    if "4" in str(br.find_control(type="checkbox").items[i]): 
     br.find_control(type="checkbox").items[i].selected = False 
    else: 
     br.find_control(type="checkbox").items[i].selected = True 
reponseaa = br.submit() 
print reponseaa 

br.open(url_2) 
br.select_form(nr=2) 
for i in range(0, len(br.find_control(type="checkbox").items)): 
    if "45198" and "4519" in str(br.find_control(type="checkbox").items[i]): 
     br.find_control(type="checkbox").items[i].selected = True 
    else: 
     br.find_control(type="checkbox").items[i].selected = False 
br.form['self'] = ["88"] 
r1 = br.submit() 
print r1 

問題是提交按鈕,這是一個下拉菜單,看起來像這個:

<select name="self"> 
<option value="0">Select an action</option> 
<option value="87">Move</option> 
<option value="88">Delete</option> 
<option value="89">Mark as Important</option> 
</select> 
<input type="submit" name="submit" value="Action!"> 

我如何選擇刪除並按下提交按鈕?一個代碼示例會很棒。謝謝。

回答

3

你應該使用form from mechanize

import mechanize 

br = mechanize.Browser() 
br.open(URL) 
br.select_form(nr=0) 
br.form['self'] = ["88"] 
r = br.submit() 

print r.read() 
+0

我得到這個錯誤:mechanize._form.ParseError:嵌套形式。我更新了問題中的代碼,以更好地理解我所做的事情。 – 2013-04-08 13:43:55

+0

這是因爲你有一種形式在另一種形式。採取這個[問題]戰利品(http://stackoverflow.com/questions/7135964/submitting-nested-form-with-python-mechanize) – ton1c 2013-04-08 13:57:38

+0

其實。我有一個:

和另一個。選擇和提交按鈕在第二個。 BeutifulSoap沒有幫助我。任何其他想法? – 2013-04-08 14:08:53