python 實(shí)現(xiàn)登錄網(wǎng)頁(yè)的操作方法
有些網(wǎng)頁(yè)需要你登錄之后才可以訪問(wèn),你需要提供賬戶和密碼。
只要在發(fā)送http請(qǐng)求時(shí),帶上含有正常登陸的cookie就可以了。
1、首先我們要先了解cookie的工作原理。
Cookie是由服務(wù)器端生成,發(fā)送給User-Agent(一般是瀏覽器),瀏覽器會(huì)將Cookie的key/value保存到某個(gè)目錄下的文本文件內(nèi),下次請(qǐng)求同一網(wǎng)站時(shí)就發(fā)送該Cookie給服務(wù)器(前提是瀏覽器設(shè)置為啟用cookie)。Cookie名稱(chēng)和值可以由服務(wù)器端開(kāi)發(fā)自己定義,對(duì)于JSP而言也可以直接寫(xiě)入jsessionid,這樣服務(wù)器可以知道該用戶是否合法用戶以及是否需要重新登錄等。
2、之后我們要獲取到用戶正常登錄的cookie.
python提供了cookieJar的庫(kù),只要把cookieJar的實(shí)例作為參數(shù)傳到urllib2的一個(gè)opener里面。
然后訪問(wèn)一次登錄的頁(yè)面,cookie就已經(jīng)保存下來(lái)了。之后通過(guò)這個(gè)實(shí)例訪問(wèn)所有的頁(yè)面都帶有正常登陸的cookie了。
以人人網(wǎng)為例子。
#encoding=utf-8 import urllib2 import urllib import cookielib def renrenBrower(url,user,password): #登陸頁(yè)面,可以通過(guò)抓包工具分析獲得,如fiddler,wireshark login_page = "http://www.renren.com/PLogin.do" try: #獲得一個(gè)cookieJar實(shí)例 cj = cookielib.CookieJar() #cookieJar作為參數(shù),獲得一個(gè)opener的實(shí)例 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #偽裝成一個(gè)正常的瀏覽器,避免有些web服務(wù)器拒絕訪問(wèn)。 opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] #生成Post數(shù)據(jù),含有登陸用戶名密碼。 data = urllib.urlencode({"email":user,"password":password}) #以post的方法訪問(wèn)登陸頁(yè)面,訪問(wèn)之后cookieJar會(huì)自定保存cookie opener.open(login_page,data) #以帶cookie的方式訪問(wèn)頁(yè)面 op=opener.open(url) #讀取頁(yè)面源碼 data= op.read() return data except Exception,e: print str(e) #訪問(wèn)某用戶的個(gè)人主頁(yè),其實(shí)這已經(jīng)實(shí)現(xiàn)了人人網(wǎng)的簽到功能。 print renrenBrower("http://www.renren.com/home","用戶名","密碼")
以上這篇python 實(shí)現(xiàn)登錄網(wǎng)頁(yè)的操作方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3從網(wǎng)絡(luò)攝像機(jī)解析mjpeg http流的示例
這篇文章主要介紹了python3從網(wǎng)絡(luò)攝像機(jī)解析mjpeg http流的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11python入門(mén):argparse淺析 nargs=''+''作用
這篇文章主要介紹了python入門(mén):argparse淺析 nargs='+'作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Python+moviepy實(shí)現(xiàn)音頻/視頻提取器
這篇文章主要為大家詳細(xì)介紹了如何使用Python和wxPython構(gòu)建的音頻/視頻提取器應(yīng)用程序,允許用戶從視頻文件中提取音頻,或者從音頻文件中截取特定時(shí)間段,需要的可以參考下2024-10-10python dict 字典 以及 賦值 引用的一些實(shí)例(詳解)
下面小編就為大家?guī)?lái)一篇python dict 字典 以及 賦值 引用的一些實(shí)例(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01python基于multiprocessing的多進(jìn)程創(chuàng)建方法
這篇文章主要介紹了python基于multiprocessing的多進(jìn)程創(chuàng)建方法,實(shí)例分析了multiprocessing模塊操作進(jìn)程的相關(guān)技巧,需要的朋友可以參考下2015-06-06python selenium 無(wú)界面瀏覽器的實(shí)現(xiàn)
有時(shí)我們不想讓瀏覽器窗口跳出來(lái),而是想在后臺(tái)進(jìn)行操作,這就需要用到無(wú)界面瀏覽器,本文主要介紹了python selenium 無(wú)界面瀏覽器的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10python中字符串的常見(jiàn)操作總結(jié)(一)
這篇文章主要介紹了python中字符串的常見(jiàn)操作總結(jié),文章通過(guò)簡(jiǎn)單介紹對(duì)象的相關(guān)展開(kāi)全文詳細(xì)內(nèi)容,需要的朋友可以參考一下2022-07-07