您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Cookielib庫和HTTPCookieProcess處理器的介紹,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Cookielib庫和HTTPCookieProcess處理器
Cookie :是指某些網站服務器為了辨別用戶身份和進行Session跟蹤,而儲存在用戶瀏覽器上的文本文件,Cookie可以保持登錄信息到用戶下次與服務器的會話。
cookielib模塊:主要作用是提供用于存儲cookie的對象
HTTPCookieProcessor處理器:主要作用是處理這些cookie對象,并構建handler對象。
cookie庫
該模塊主要的對象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。
CookieJar:管理HTTP cookie值、存儲HTTP請求生成的cookie、向傳出的HTTP請求添加cookie的對象。整個cookie都存儲在內存中,對CookieJar實例進行垃圾回收后cookie也將丟失。
FileCookieJar (filename,delayload=None,policy=None):從CookieJar派生而來,用來創建FileCookieJar實例,檢索cookie信息并將cookie存儲到文件中。filename是存儲cookie的文件名。delayload為True時支持延遲訪問訪問文件,即只有在需要時才讀取文件或在文件中存儲數據。
MozillaCookieJar (filename,delayload=None,policy=None):從FileCookieJar派生而來,創建與Mozilla瀏覽器 cookies.txt兼容的FileCookieJar實例。
LWPCookieJar (filename,delayload=None,policy=None):從FileCookieJar派生而來,創建與libwww-perl標準的 Set-Cookie3 文件格式兼容的FileCookieJar實例。
其實大多數情況下,我們只用CookieJar(),如果需要和本地文件交互,就用 MozillaCookjar() 或 LWPCookieJar()。
下面通過實例登錄人人網,學習cookieJar()用法
# _*_ coding:utf-8 _*_ import urllib2 import urllib import cookielib #通過CookieJar()類構建一個cookieJar對象,用來保存cookie的值 cookie = cookielib.CookieJar() #通過HTTPCookieProcessor()處理器類構建一個處理器對象,用來處理cookie #參數就是構建的CookieJar()對象 cookie_handler = urllib2.HTTPCookieProcessor(cookie) #構建一個自定義的opener opener = urllib2.build_opener(cookie_handler) # 通過自定義opener的addheaders的參數,可以添加HTTP報頭參數 opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36')] #renren網的登錄接口 url = 'http://www.renren.com/PLogin.do' #需要登錄的賬號密碼 data = {'email':'15********','password':'py********'} # 通過urlencode()編碼轉換 data = urllib.urlencode(data) # 第一次是POST請求,發送登錄需要的參數,獲取cookie request = urllib2.Request(url,data = data) response = opener.open(request) print response.read()
有了cookie之后,可以直接爬取其它頁面。
# _*_ coding:utf-8 _*_ import urllib2 import urllib import cookielib #通過CookieJar()類構建一個cookieJar對象,用來保存cookie的值 cookie = cookielib.CookieJar() #通過HTTPCookieProcessor()處理器類構建一個處理器對象,用來處理cookie #參數就是構建的CookieJar()對象 cookie_handler = urllib2.HTTPCookieProcessor(cookie) #構建一個自定義的opener opener = urllib2.build_opener(cookie_handler) # 通過自定義opener的addheaders的參數,可以添加HTTP報頭參數 opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36')] #renren網的登錄接口 url = 'http://www.renren.com/PLogin.do' #需要登錄的賬號密碼 data = {'email':'15********','password':'python********'} # 通過urlencode()編碼轉換 data = urllib.urlencode(data) request = urllib2.Request(url,data = data) response = opener.open(request) # print response.read() # 可以直接爬取登錄后的其它頁面了 response_other = opener.open('http://friend.renren.com/managefriends') print response_other.read()
關于Cookielib庫和HTTPCookieProcess處理器的介紹就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。