1. Cookie 介紹
HTTP 協(xié)議是無狀態(tài)的。因此,若不借助其他手段,遠(yuǎn)程的服務(wù)器就無法知道以前和客戶端做了哪些通信。Cookie 就是「其他手段」之一。 Cookie 一個典型的應(yīng)用場景,就是用于記錄用戶在網(wǎng)站上的登錄狀態(tài)。
2.requests使用cookie
當(dāng)瀏覽器作為客戶端與遠(yuǎn)端服務(wù)器連接時,遠(yuǎn)端服務(wù)器會根據(jù)需要,產(chǎn)生一個 SessionID,并附在 Cookie 中發(fā)給瀏覽器。接下來的時間里,只要 Cookie 不過期,瀏覽器與遠(yuǎn)端服務(wù)器的連接,都會使用這個 SessionID;而瀏覽器會自動與服務(wù)器協(xié)作,維護(hù)相應(yīng)的 Cookie。
在requests
中,也是這樣。我們可以創(chuàng)建一個requests.Session
,爾后在該 Session 中與遠(yuǎn)端服務(wù)器通信,其中產(chǎn)生的 Cookie,requests
會自動為我們維護(hù)好。
3. POST 表單
post 方法可以將一組用戶數(shù)據(jù),以表單的形式發(fā)送到遠(yuǎn)端服務(wù)器。遠(yuǎn)端服務(wù)器接受后,依照表單內(nèi)容做相應(yīng)的動作。
調(diào)用requests
的 POST 方法時,可以用data
參數(shù)接收一個 Python 字典結(jié)構(gòu)。requests
會自動將 Python 字典序列化為實際的表單內(nèi)容。例如:
import requests cs_url = 'http://httpbin.org/post' my_data = { 'key1' : 'value1', 'key2' : 'value2' } r = requests.post (cs_url, data = my_data) print r.content