2013-05-15 50 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