Python cookie的保存與讀取、SSL講解
一、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é)初次登錄 需要輸入用戶(hù)名密碼 :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é)初次登錄 需要輸入用戶(hù)名密碼 :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)
三、源碼
以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
python?print無(wú)法打印\r的問(wèn)題及解決
這篇文章主要介紹了python?print無(wú)法打印\r的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08簡(jiǎn)介Python設(shè)計(jì)模式中的代理模式與模板方法模式編程
這篇文章主要介紹了Python設(shè)計(jì)模式中的代理模式與模板方法模式編程,文中舉了兩個(gè)簡(jiǎn)單的代碼片段來(lái)說(shuō)明,需要的朋友可以參考下2016-02-02教你怎么用Python實(shí)現(xiàn)GIF動(dòng)圖的提取及合成
今天教大家一個(gè)Python有趣好玩的小功能:將多張圖片轉(zhuǎn)為GIF,同時(shí)也可以將一個(gè)GIF動(dòng)圖提取出里面的圖片,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06簡(jiǎn)單了解什么是神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了簡(jiǎn)單了解什么是神經(jīng)網(wǎng)絡(luò),具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Python Selenium實(shí)現(xiàn)無(wú)可視化界面過(guò)程解析
這篇文章主要介紹了Python Selenium實(shí)現(xiàn)無(wú)可視化界面過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08python3 os進(jìn)行嵌套操作的實(shí)例講解
在本篇文章里小編給大家整理了關(guān)于python3 os進(jìn)行嵌套操作的實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2020-11-11python3下pygame如何實(shí)現(xiàn)顯示中文
這篇文章主要介紹了python3下pygame如何實(shí)現(xiàn)顯示中文,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01