python爬取公众号历史文章_python爬微信公众号前10篇历史文章(6)-话说http cookies...
早期Web開發面臨的最大問題之一是如何管理狀態。簡言之,服務器端沒有辦法知道兩個請求是否來自于同一個瀏覽器。這是cookies的起源。
什么是cookie?
A cookie is a small stub of information left by a website on a visitor's computer through the web browser.
一個cookie就是存儲在用戶主機瀏覽器中的一小段文本文件。Cookies是純文本形式,它們不包含任何可執行代碼。存儲cookie是瀏覽器的功能。
基于一系列規則在之后的每個請求中都將該信息返回至服務器。Web服務器之后可以利用這些信息來標識用戶。
設置一個cookie,之后只要這個cookie存在并且合法,你就可以自由的瀏覽這個站點的所有部分。當網頁要發http請求時,瀏覽器會先檢查是否有相應的cookie,有則自動添加在request header中的cookie字段中。
再次,cookie只是包含了數據,就其本身而言并不有害。
每個域名下的cookie 的大小最大為4KB,每個域名下的cookie數量最多為20個(但很多瀏覽器廠商在具體實現時支持大于20個)。
cookie通信:
request header中自動添加了Cookie字段(我并沒有手動添加這個字段哦~),Cookie字段的值其實就是我設置的?cookie。這個請求最終會發送到http://ppsc.sankuai.com這個服務器上,這個服務器就能從接收到的request header中提取cookie。
cookie的基本通信流程:設置cookie?=>?cookie被自動添加到request header中 => 服務端接收到cookie
cookie的構成:
set cookie: name=value; domain=.mozilla.org; expires=Feb, 13-Mar-2018 11:47:50; path=/; secure
名稱(name):一個唯一確定cookie的名稱,部分大小寫,cookie的名字必須是經過URL編碼的,一般可以采用某個前綴在加上當前時間的做法,這樣的話名稱能夠確保是唯一的,也比較方便。
值(value):存儲在cookie中的字符串值,必須經過被URL編碼
失效時間(expires):表示cookie何時應該被刪除的時間戳,這個日期是GMT格式的日期,如果設置是以前的時間,cookie會被立刻刪除。上訴cookie的失效時間是Feb,13-Mar-2018 11:47:50。
域(domain):對于哪個域是有效的,如果沒有設置的話,默認來自設置cookie的那個域,在上訴例子中就是.Mozilla.org
路徑(path):指定域中的那個路徑應該像服務器發送cookie,/ 表示沒有限制。path默認值為設置該cookie的網頁所在的目錄。domain和path2個選項共同決定了cookie何時被瀏覽器自動添加到請求頭部中發送出去。
安全標志(secure):指定以后,cookie只有在使用SSL連接的時候才可以發送到服務器。
expires?是 http/1.0協議中的選項,在新的http/1.1協議中expires已經由?max-age?選項代替,兩者的作用都是限制cookie 的有效時間。expires的值是一個時間點(cookie失效時刻= expires),而max-age?的值是一個以秒為單位時間段(cookie失效時刻= 創建時刻+ max-age)。
另外,max-age?的默認值是?-1(即有效期為?session?);若max-age有三種可能值:負數、0、正數。負數:有效期session;0:刪除cookie;正數:有效期為創建時刻+ max-age
設置cookie:
cookie既可以由服務端來設置,也可以由客戶端來設置。
服務端設置 cookie:?不管你是請求一個資源文件(如 html/js/css/圖片),還是發送一個ajax請求,服務端都會返回response。而response header中有一項叫set-cookie,是服務端專門用來設置cookie的。一個set-Cookie字段只能設置一個cookie,當你要想設置多個 cookie,需要添加同樣多的set-Cookie字段。
客戶端設置 cookie:在網頁即客戶端中我們也可以通過js代碼來設置cookie。
document.cookie="age=12; expires=Thu, 26 Feb 2116 11:50:25 GMT; domain=sankuai.com; path=/";
cookie的應用:
購物車(網購)
自動登錄(登錄賬號時的自動登錄)
精準廣告
平常瀏覽網頁時有時會推出商品剛好是你最近瀏覽過,買過的類似東西,這些是通過cookie記錄的。
記住登錄狀態
python request模塊提供的cookie相關內容:
請求會話:class?requests.Session
Provides cookie persistence, connection-pooling, and configuration.
創建一個會話之后,可以訪問它的CookieJar,它保存了所有這個會話中的cookie信息。
在發送請求的header中設置cookie信息:
session.get(url, headers= '{'Cookie':'SUV=43BBE548642E940A000000005AA1D6FD;SNUID=21D9862A6266048D992B9AFC635824EB;'})
總結
以上是生活随笔為你收集整理的python爬取公众号历史文章_python爬微信公众号前10篇历史文章(6)-话说http cookies...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali怎么新建文本_甘特图怎么画?零基
- 下一篇: 生鲜配送小程序源码_生鲜配送小程序开发