urllib庫中cookie的使用
阿新 • • 發佈:2018-12-10
#----------------------------如何獲取cookie資訊-------------------------------------------- import http.cookiejar,urllib.request # #第一步宣告一個Cookiejar物件 # cookie_obj=http.cookiejar.CookieJar() # #第二步,根據cookiejar物件建立cookie資訊的管理物件handler # handler=urllib.request.HTTPCookieProcessor(cookie_obj) # #第三步,根據handler物件建立一個opener物件# opener=urllib.request.build_opener(handler) # #第四步,根據opener物件開啟網址 # response=opener.open("http://www.baidu.com") # #這樣CookieJar物件cookie_obj就儲存了該網址的cookie資訊 # for item in cookie_obj: # print(item.name+"=",item.value) #----------------------如何將cookie資訊儲存到本地---------------------------- #cookieJar # / # FileCookieJar # / \ # MozillaCookieJar LWPCookieJar # #MozillaCookieJar和LWPCookieJar都是用於將cookie資訊儲存為本地檔案的一種形式,區別在於使用MozillaCookieJar生成的Cookie資訊會儲存為Mozilla型別的Cookie格式。使用LWPCookieJar會將cookie資訊儲存為libwww-perl格式的cookie檔案。# #第一步:宣告一個MozillaCookieJar或者LWPCookieJar的一個物件 # cookie_mozilla_obj=http.cookiejar.MozillaCookieJar(filename="cookie.txt") # #第二步:根據MozlillaCookieJar生成的物件cookie_mozilla_obj,來建立一個cookie資訊的管理物件handler # hanlder=urllib.request.HTTPCookieProcessor(cookie_mozilla_obj) # #第三步:根據handler物件建立opener物件 # opener=urllib.request.build_opener(hanlder) # #第四步:根據opener物件對網址發起請求 # response_test=opener.open("http://www.baidu.com") # #第五步:將cookie資訊儲存到本地 # #ignore_descard=True。即使cookie資訊將要過期/作廢,也要將其儲存到檔案 # #igonre_expires=True。即使cookie資訊在檔案中已經存在,仍然對其進行覆蓋寫入。 # cookie_mozilla_obj.save(ignore_expires=True,ignore_discard=True) #------------------------讀取cookie資訊對網站進行訪問--------------------------- #第一步:宣告一個MozillaCookieJar物件 cookie_obj=http.cookiejar.MozillaCookieJar() #第二步:載入本地的cookie資訊 #ignore_descard=True。即使cookie資訊將要過期/作廢,也仍要讀取cookie資訊 #igonre_expires=True。即使cookie資訊在檔案中已經存在,仍然也要讀取。 cookie_obj.load(filename="cookie.txt",ignore_expires=True,ignore_discard=True) #第三步:根據cookie_obj建立cookie資訊的管理物件handler handler=urllib.request.HTTPCookieProcessor(cookie_obj) #第四步:根據handler建立一個opener物件 opener=urllib.request.build_opener(handler) #第五步:根據opener物件呼叫open方法對網站發起請求 response=opener.open("http://www.baidu.com") print(response.read().decode("utf-8"))