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


其實只要用cookies屬性的update方法更新cookie就行了。
比如:

cookie_dict = {"a":1}
s = requests.Session()
s.cookies.update(cookie_dict)
s.get(url)

-----------------分割線----------------------下面的東東是以前的----------------上面是原文作者發現的新的方法---我看了下官網實際也有-----所以啊 沒事多看官網----https://requests.kennethreitz.org//zh_CN/latest/user/advanced.html#advanced------------------

最近在做爬蟲的時候遇到了一個問題,在用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