關於requests模塊保持cookie的問題


關於requests的session方法保持不了cookie的問題。(seesion的意思是保持一個會話,比如 登陸后繼續操作(記錄身份信息) 而requests是單次請求的請求,身份信息不會被記錄)

最近在做爬蟲的時候遇到了一個問題,在用requests的session方法保持cookie的時候發現requests不能保持手動構建的cookie。起初以為requests只能自動保持由服務器返回的set-cookie語句中的cookie。后來查了很多資料,才終於明白。原來requests只能保持 cookiejar 類型的cookie,而我們手動構建的cookie是dict類型的。所以要把dict轉為 cookiejar類型,於是我又在網上查,在幾乎打算放棄的時候終於找到了一個把dict轉為cookiejar的方法,如下:

#將CookieJar轉為字典: cookies = requests.utils.dict_from_cookiejar(r.cookies) #將字典轉為CookieJar: cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True) #其中cookie_dict是要轉換字典 轉換完之后就可以把它賦給cookies 並傳入到session中了: s = requests.Session() s.cookies = cookies
(實驗證明,使用這個方法是替換原來的cookies 並不是追加,下面有追加的方法)-----------------------------------------------------------------------------------------------------替換cookie

以上代碼是我在下面這個網站上查到的,感謝這個博客的作者!這篇文章上還介紹了一些官方文檔中沒有提到的方法。

—————————-以下是原文——————————— 
原文地址:http://www.lihuai.net/program/python/1617.html

原文地址:  http://blog.csdn.net/falseen/article/details/46962011

自己嘗試:

也可以把headers這個請求頭直接轉成cookiejar類型放入cookies里面,嘗試了成功執行

cookies = requests.utils.cookiejar_from_dict(headers, cookiejar=None, overwrite=True)

 

 

追加cookie的方法:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM