-1

我已经使用 mechanize 并成功登录到用户登录页面。现在我想将站点导航到子菜单中的特定页面。当我在登录后通过打开特定页面的 URL 来尝试此操作时,会出现另一个我没有用户名和密码的登录页面。当我在 Web 浏览器上浏览网站时,通常不会显示此登录页面。我怎样才能做到这一点?

        import mechanize
        import webbrowser
        import cookielib

        usern = '****'
        passw = '****'

        br = mechanize.Browser()
        cj = cookielib.LWPCookieJar()
        br.set_handle_robots(False)
        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')]

        r = br.open("https://myunihub-1.mdx.ac.uk/cas-web/login?service=https%3A%2F%2Fmyunihub.mdx.ac.uk%2Fc%2Fportal%2Flogin")
        br.select_form(nr=0)
        br.form['username'] = usern
        br.form['password'] = passw
        br.set_cookiejar(cj)
        br.submit


        url = "https://misis.mdx.ac.uk/mislve/bwskfshd.P_CrseSchd"
        webbrowser.open_new(url)
4

1 回答 1

0

尝试使用 cookie 并伪装成真正的浏览器。一些网站不允许自动脚本/机器人抓取他们的网站。但你总是可以告诉他们不,不,我是真正的浏览器。

import cookielib
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

让我们假设我们不是机器人和真正的浏览器。

br.set_handle_robots(False)
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')]
于 2015-10-04T17:24:42.550 回答