механизировать Python Moodle логин - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь автоматизировать некоторые задачи в Moodle с помощью Mechanize в Python.

Моя первая цель - просто войти в систему, но по какой-то причине это не сработает.

Я всегда получаюв результате откроется экран входа.

Кто-нибудь знает, в чем может быть проблема:


    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)

1 Ответ

1 голос
/ 18 октября 2019

Используйте это

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

вместо

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