您好,登錄后才能下訂單哦!
一、cookie的保存與讀取
1.cookie的保存-FileCookie.Jar
from urllib import request,parse from http import cookiejar #創(chuàng)建cookiejar實(shí)例 filename = "cookie.txt" cookie = cookiejar.MozillaCookieJar(filename) #生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor(cookie) #創(chuàng)建http請(qǐng)求管理器 http_handler = request.HTTPHandler() #生成https管理器 https_handler = request.HTTPHandler() #創(chuàng)建請(qǐng)求管理器 opener = request.build_opener(http_handler,https_handler,cookie_handler) def login(): """ 負(fù)責(zé)初次登錄 需要輸入用戶名密碼 :return: """ url = "http://www.renren.com/PLogin.do" data = { "email":"1215217867@qq.com", "password":"481648541615485" } #把數(shù)據(jù)進(jìn)行編碼 data = parse.urlencode(data) #創(chuàng)建一個(gè)請(qǐng)求對(duì)象 req = request.Request(url,data=data.encode()) #使用opener發(fā)起請(qǐng)求 rep = opener.open(req) #保存cookie到文件 #ignore_discard表示及時(shí)cookie將要被丟棄也要保存下來(lái) #ignore_expire表示如果該文件中cookie即使已經(jīng)過(guò)期,保存 cookie.save(ignore_discard=True,ignore_expires=True) def getHomePage(): url = "http://www.renren.com/965187997/profile" #如果已經(jīng)執(zhí)行了login函數(shù),則opener自動(dòng)已經(jīng)包含相應(yīng)的cookie值 rsp = opener.open(url) html = rsp.read().decode() with open("rsp.html","w") as f: f.write(html) if __name__ == "__main__": """ 執(zhí)行完login之后,會(huì)得到授權(quán)之后的cookie 我們嘗試把cookie打印出來(lái) """ login() getHomePage()
2.cookie的讀取
from urllib import request,parse from http import cookiejar #創(chuàng)建cookiejar實(shí)例 cookie = cookiejar.MozillaCookieJar() cookie.load("cookie.txt",ignore_discard=True,ignore_expires=True) #生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor(cookie) #創(chuàng)建http請(qǐng)求管理器 http_handler = request.HTTPHandler() #生成https管理器 https_handler = request.HTTPHandler() #創(chuàng)建請(qǐng)求管理器 opener = request.build_opener(http_handler,https_handler,cookie_handler) def login(): """ 負(fù)責(zé)初次登錄 需要輸入用戶名密碼 :return: """ url = "http://www.renren.com/PLogin.do" data = { "email":"1215217867@qq.com", "password":"481648541615485" } #把數(shù)據(jù)進(jìn)行編碼 data = parse.urlencode(data) #創(chuàng)建一個(gè)請(qǐng)求對(duì)象 req = request.Request(url,data=data.encode()) #使用opener發(fā)起請(qǐng)求 rep = opener.open(req) #保存cookie到文件 #ignore_discard表示及時(shí)cookie將要被丟棄也要保存下來(lái) #ignore_expire表示如果該文件中cookie即使已經(jīng)過(guò)期,保存 cookie.save(ignore_discard=True,ignore_expires=True) def getHomePage(): url = "http://www.renren.com/965187997/profile" #如果已經(jīng)執(zhí)行了login函數(shù),則opener自動(dòng)已經(jīng)包含相應(yīng)的cookie值 rsp = opener.open(url) html = rsp.read().decode() with open("rsp.html","w") as f: f.write(html) if __name__ == "__main__": """ 執(zhí)行完login之后,會(huì)得到授權(quán)之后的cookie 我們嘗試把cookie打印出來(lái) """ # login() getHomePage()
改代碼讀取了保存的cookie文件,并且訪問(wèn)網(wǎng)頁(yè)成功。
二、SSL
1.什么是SSL
(1)SSL證書(shū)就是指遵守SSL安全套階層協(xié)議的服務(wù)器數(shù)字證書(shū)(SercureSocketLayer)
(2)該證書(shū)是由美國(guó)網(wǎng)景公司開(kāi)發(fā)
(3)CA(CertifacateAuthority)是數(shù)字證書(shū)認(rèn)證中心,是發(fā)放、管理、廢除數(shù)字證書(shū)的收信人的第三方機(jī)構(gòu)。
(4)遇到不信任的SSL證書(shū),可以用代碼進(jìn)行忽略掉
from urllib import request #導(dǎo)入python ssl處理模塊 import ssl #利用非認(rèn)證上下文環(huán)境替換認(rèn)證的下文環(huán)境 ssl._create_default_https_context = ssl._create_unverified_context url = "https://www.12306.cn/mormhweb/" rsp = request.urlopen(url) html = rsp.read().decode() print(html)
三、源碼
Reptitle7_1_SaveCookie.py
Reptitle7_2_LoadCookie.py
Reptitle7_3_SSLAnalysis.py
以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。