我正在编写一个较大程序的较小部分,该程序使用机械化将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
我确定这是一个愚蠢的问题,但其他问题都没有帮助我
谢谢!
答案 0 :(得分: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
这对我有用,但正如我告诉你的下载链接是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()