2015-10-04 54 views
-1

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

 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) 
+1

欢迎来到StackOverflow。为了给您提供合理的编码问题帮助,我们需要您按照帮助文档发布问题。请阅读并遵循http://stackoverflow.com/help/how-to-ask和http://stackoverflow.com/help/mcve。除此之外,我们需要您发布您的最小代码以及它引发的完整错误。 – Prune

+0

错误信息是什么? – garg10may

回答

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')] 
+0

它仍然无效我将我的代码添加到问题 –

+0

您可以在您的问题中包含代码。按CTRL + K的行是代码,将格式化它。如果答案有帮助,你可以接受它,并upvote。也尝试在问题中包含错误。 – garg10may

+0

@KumarPatel你没有包含'br.set_cookiejar(cj)'这会设置你的cookie。 – garg10may