机械化 Python moodle 登录

mechanize Python moodle login

我正在尝试在 Python 中使用 mechanize 自动执行 moodle 中的一些任务。

我的第一个目标是登录,但由于某种原因,它无法正常工作。

结果我总是返回登录屏幕。

有谁知道问题出在哪里:


    import http.cookiejar as cookielib
    import mechanize

    br = mechanize.Browser()
    cookiejar = cookielib.LWPCookieJar()
    br.set_cookiejar(cookiejar)

    br.set_handle_equiv(True)
    br.set_handle_gzip(True)
    br.set_handle_redirect(True)
    br.set_handle_referer(True)
    br.set_handle_robots(False)

    br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time = 1)
    br.addheaders = [( 'User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1' )]
    br.open("url-to-login")

    br.select_form(nr=0)
    br.form.controls[1]._value = "username"
    br.form.controls[2]._value = "password"
    br.submit(id="loginbtn")

    url = br.open("url-to-course")
    returnPage = url.read()
    print(returnPage)

使用这个

br.form['username'] = "myusername"
br.form['password'] = "mypassword"

而不是

br.form.controls[1]._value = "myusername"
br.form.controls[2]._value = "mypassword"