2013-05-15 3 views
0

Im писать меньшую часть более крупной программы, которая использует механизировать для ввода URL YouTube в форму, но я не могу заставить его работатьВвод в форму с Mechanize

Im используя первую форму на странице nr=0 но я не то, что поставить в поле br[] атрибута, так как я не имею имя формы только ид

Вот мой код:

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 

Im уверен, что его немой вопрос, но ни один других вопросов: h elping me

спасибо!

+0

Похоже, вы пытаетесь получить поле в форме? Если это так, вы можете попробовать с циклом 'для поля в br.select_form():' Или, по крайней мере, использовать for для печати имени каждого поля – 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_name и user_password

Тхи 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/watch? v = KMU0tzLwhbE)> = Конвертировать видео) (отключено, только для чтения)> 'То, что я получаю? – Serial

+0

Ну, похоже, у формы нет имен. – PepperoniPizza

+0

то как мне войти в них !? – Serial

Смежные вопросы