一、使用cookie登錄
1.直接把cookie復制下去,然后手動放到請求頭
2.http模塊包含一些關于cookie的模塊,通過他們我們可以自動使用cookie
(1)cookieJar
管理存盤cookie,向傳出的http請求添加cookie;cookie存盤在記憶體中,CookieJar實體回收后cookie?將消失;
(2)FileCookieJar(filename,delayload=None,policy=Nnone)
使用檔案管理cookie?;filename是保存cookie的檔案
filename是保存cookie的檔案
(3)MozillaCookieJar(filename,delayload=None,policy=None)
創建于mocilla瀏覽器cookie,txt兼容的FileCookieJar實體
(4)LwpCookieJar(filename,delayload-None,policy=None)
創建與libww-perl標準兼容的FileCookieJar實體
(5)?他們的關系是:CookieJar-->FileCookirJar-->MozillaCookieJar & LwpCookieJa
3.利用cookiejar訪問人人網
自動使用cookie登錄,?大致流程為:(1)打開登陸頁面后自動通過用戶名密碼登錄?;(2)自動提取反饋回來的cookie?;(3)利用提取的cookie登錄隱私頁面?;
4.handler是Handler的實體,常用參看案例代碼
(1)用來處理復雜請求
#生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor(cookie) #創建http請求管理器 http_handler = request.HTTPHandler() #生成https管理器 https_handler = request.HTTPHandler()
(2)創立handler后,使用opener打開,打開后相應的業務由相應的handler處理
(3)cookie作為一個變數,列印出來
cookie的屬性?:
name:名稱 value?:值 domain:可以訪問此cookie的域名 expires:過期時間 size:大小 Http欄位
from urllib import request,parse from http import cookiejar #創建cookiejar實體 cookie = cookiejar.CookieJar() #生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor(cookie) #創建http請求管理器 http_handler = request.HTTPHandler() #生成https管理器 https_handler = request.HTTPHandler() #創建請求管理器 opener = request.build_opener(http_handler,https_handler,cookie_handler) ? def login(): """ 負責初次登錄 需要輸入用戶名密碼 :return: """ url = "http://www.renren.com/PLogin.do" data = { "email":"[email protected]", "password":"481648541615485" } #把資料進行編碼 data = parse.urlencode(data) #創建一個請求物件 req = request.Request(url,data=https://www.cnblogs.com/ruigege0000/p/data.encode()) #使用opener發起請求 rep = opener.open(req) ? def getHomePage(): url = "http://www.renren.com/965187997/profile" #如果已經執行了login函式,則opener自動已經包含相應的cookie值 rsp = opener.open(url) ? html = rsp.read().decode() with open("rsp.html","w") as f: f.write(html) ? ? if __name__ == "__main__": """ 執行完login之后,會得到授權之后的cookie 我們嘗試把cookie列印出來 """ login() print(cookie) for item in cookie: print(type(item)) print(item) for i in dir(item): print(i) getHomePage()


二、原始碼
Reptitle6_CookieJar.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle6_CookieJar.py?
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,個人公眾號,僅用于學習交流,后臺回復”禮包“,獲取大資料學習資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/198244.html
標籤:Python
上一篇:終于!疫情之下,第一批企業沒能熬住面臨倒閉,員工被遣散,沒能等來春暖花開!
下一篇:python筆記14
