2013-05-15 49 views
0

我寫一個使用機械化輸入YouTube網址爲形式,但我不能得到一個更大的計劃的一小部分它採用nr=0頁面上的第一種形式的工作踏入形式機械化

林,但我不把什麼在br[]屬性對話框,因爲我沒有形式只是ID

這裏的名字是我的代碼:

import mechanize 

url = "Youtube to Mp3 URL" 
br = mechanize.Browser() 
br.set_handle_robots(False) 
br.open(url) 
br.select_form(nr=0) 
br[?] = "Youtube Video URL" #What goes in the []? 
res = br.submit() 
content = res.read() 
print content 

我確信它是一種愚蠢的問題,但沒有其他問題是h elping我

謝謝!

+0

看起來你正試圖獲得在形式的領域?如果是這樣的話,你可以用一個循環試試,'現場在br.select_form():'或者至少使用了打印每個字段的名稱 – PepperoniPizza

回答

1

我測試了以下和工作原理:

br.select_form(nr=0) 
for field_name in br.form.controls: 
    print field_name 

會給你你需要填寫字段的名稱的線索,這將是一個括號,如下列:

<HiddenControl(submit_hidden=submit_hidden) (readonly)> 
<TextControl(user_name=)> 
<PasswordControl(user_password=)> 
<SubmitControl(submit=Login) (readonly)> 

在這種情況下,字段USER_NAMEUSER_PASSWORD

THI s是什麼爲我工作,但我告訴你下載鏈接進來Javascript和機械化不支持它,你會需要像WATIR這是紅寶石。

browser.select_form(nr=0) 

    for field in browser.form.controls: 
     field._value = "http://www.youtube.com/watch?v=ARz8ddGIZIA" 
     break 

    browser.submit() 
    response = browser.response().read() 
+0

' = HTTP://www.youtube .COM /手錶?ν= KMU0tzLwhbE)> =轉換視頻)(禁用,只讀)>'這就是我得到什麼? – Serial

+0

好像表單沒有名稱。 – PepperoniPizza

+0

那我該如何進入他們!? – Serial