2015-10-04 86 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