1、使用cookie登陸html
1.直接把cookie複製下去,而後手動放到請求頭git
2.http模塊包含一些關於cookie的模塊,經過他們咱們能夠自動使用cookiegithub
(1)cookieJar瀏覽器
管理存儲cookie,向傳出的http請求添加cookie;cookie存儲在內存中,CookieJar實例回收後cookie將消失;微信
(2)FileCookieJar(filename,delayload=None,policy=Nnone)cookie
使用文件管理cookie;filename是保存cookie的文件dom
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":"1215217867@qq.com", "password":"481648541615485" } #把數據進行編碼 data = parse.urlencode(data) #建立一個請求對象 req = request.Request(url,data=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()
2、源碼
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.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料