python使用requests時使用RequestsCookieJar自動保存並傳遞cookie


使用python的requests開發爬蟲類程序時,經常需要將之前請求返回的set-cookie值,作為下一個請求的cookie發送。比如模擬登錄之后的返回的sessionId,就需要作為后續請求的cookie參數。

網上找了一圈,發現很多說需要手動添加或設置cookie的值。殊不知cookie是與域名、路徑先關的,而且具有有效期。手動操作很容易掉坑里。。。

之前做C#時就有一個CookieContainer類可以自動處理cookie,照理requests的RequestsCookieJar應該也有類似的作用。研究了下發現其實requests組件確實具有自動處理cookie的能力,而且一句update代碼就能搞定:

    def __init__(self):
        self.cookies = requests.cookies.RequestsCookieJar()

    def go(self, url, method, post_data):
            response = requests.request(method, url
                                        , data=post_data
                                        , headers=info.headers
                                        , cookies=self.cookies) #傳遞cookie

            self.cookies.update(response.cookies) # 保存cookie

 


免責聲明!

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



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