2014-09-02 34 views
0
import urllib 
import urllib2 
import cookielib 

def xueqiuBrower(url,user,passwd): 

    login_page='http://xueqiu.com/' 
    try: 

     cj=cookielib.CookieJar() 

     opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 

     opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] 

     data=urllib.urlencode({'email':user, 'password':passwd}) 

     opener.open(login_page,data) 
     op=opener.open(url) 
     data=op.read() 
     return data 
    except Exception,e: 
     print str(e) 

if __name__=='__main__': 
    url='http://xueqiu.com/' 
    name='....' 
    passwd='....' 
    print xueqiuBrower(url,name,passwd) 

我使用Python 2.7,我想登錄網絡,但它不能,則返回「HTTP錯誤404:未找到 無」,請幫我解決它,謝謝Python的登錄網頁

+1

你有選擇安裝第三方庫嗎?如果是,您是否嘗試過使用[requests](http://docs.python-requests.org/en/latest/)?它使Python中的HTTP非常簡單。 – exhuma 2014-09-02 07:22:12

+0

謝謝,我使用此代碼登錄另一個網頁是好的,但不要登錄這個URL,所以我想知道爲什麼 – 2014-09-02 07:27:40

+0

你有一個完整的堆棧跟蹤的錯誤?如果是,請編輯您的問題並將其添加到它。 – exhuma 2014-09-02 07:31:31

回答

0

您正在使用錯誤的網址。正確的URL訪問登錄形式是:

http://xueqiu.com/service/login 

當你調用opener.opendata參數,Python會發送一個POST請求。但是,您指定的網址似乎不允許使用該網址。而遠程站點則返回錯誤的錯誤代碼。它將返回404 Not found而不是405 Method not allowed

只需右鍵單擊登錄表單並選擇「檢查元素」,即可顯示正確的URL,檢查頁面的源代碼。