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

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

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------------------python

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

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

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

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

本身嘗試:url

也能夠把headers這個請求頭直接轉成cookiejar類型放入cookies裏面,嘗試了成功執行spa

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

 

 

追加cookie的方法:code

相關文章
相關標籤/搜索