0

我正在编写一个较大程序的一小部分,该程序使用机械化将 YouTube URL 输入到表单中,但我无法让它工作

我使用页面上的第一个表单,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

我确定这是一个愚蠢的问题,但其他问题都没有帮助我

谢谢你!

4

1 回答 1

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

这对我有用,但正如我告诉你的下载链接来自 Javascript 并且 mechanize 不支持它,你需要像WATIR这样的东西,它是用于 ruby​​ 的。

   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()
于 2013-05-16T00:35:10.730 回答