PyCon 2015 Crawler Tutorial Explain Cookies

33
Cookie Set-Cookie: event=python-crawler

Transcript of PyCon 2015 Crawler Tutorial Explain Cookies

CookieSet-Cookie: event=python-crawler

Cookies

我們在參加PyCon的時候 要先出⽰示通⾏行證 場務⼈人員會掃描QR code 然後給你識別證

Cookies

這個識別證要全程掛在脖⼦子上

Cookies

讓場務⼈人員知道我們是參加PyCon的

Cookies

如果識別證上有”Speaker”的標記 就可以進入講師休息室

Cookies

拿午餐便當的時候 場務⼈人員會在識別證上劃記 表⽰示這個⼈人拿過便當了

Cookies

所以當他想再去拿⼀一個便當的時候 ⼯工作⼈人員就知道他已經拿過便當了 不能再發

Cookies

⽽而且下次再進來時就不必再跟⼯工作⼈人員確認⼀一次

Cookies

假如今天沒有識別證...

Cookies

那麼每個⼈人都可以偽裝成會眾 偽裝成講師 可以吃無限多個便當

流程是這樣的:

通⾏行證

流程是這樣的:

通⾏行證 Scan

流程是這樣的:

通⾏行證 Scan 識別證

流程是這樣的:

通⾏行證 Scan 識別證

HTTP Cookies

HTTP Cookies

Username/Password

HTTP Cookies

Username/Password

Login

HTTP Cookies

Username/Password

Login

Set Cookie

HTTP Cookies

Username/Password

Login

Set CookieAccess to Page

Cookies

Cookie的作⽤用就像識別證⼀一樣

可以讓server知道你的身分

Cookies

Cookie通常不是給⼈人看的

Cookie裡的東西通常加密過

很難偽裝

很多網站還會在每次造訪網站時隨機⽣生key

Cookie Schema

⼀一個Cookie會有以下幾個屬性:

name

value

(domain)

(path)

(expires)

Cookie Schema

我們以識別證為例⼦子

name = “Pycon_ID”

value = “218”

domain = “中央研究院⼈人⽂文社會科學館”

path = “PYCON_APAC_2015”

expires = “Sat June 7 2015 18:00:00”

Cookies

Cookie 是 Client Only 的

Browser 會儲存這些cookie, 在發出request時就會嵌在header裡

HTTP Response 可以在header裡傳入 Set-Cookie 告訴Client多加⼀一個Cookie

Cookies

相信⼤大家都已經看過不知道多少次的PTT 八卦版

Cookies

應該也都詳細閱讀過電腦網路內容分級處理辦法第六條第三款規定

我們來解釋⼀一下流程

我們來解釋⼀一下流程

PTT轉址

我們來解釋⼀一下流程

PTT轉址

我同意此條款已年滿⼗〸十八歲

我們來解釋⼀一下流程

PTT轉址

我同意此條款已年滿⼗〸十八歲

POST over18

我們來解釋⼀一下流程

PTT轉址

我同意此條款已年滿⼗〸十八歲

POST over18

PTT set-cookie

我們來解釋⼀一下流程

PTT轉址

我同意此條款已年滿⼗〸十八歲

POST over18

PTT set-cookieAccess to Page

Hands-on Practice

⽤用Python requests抓取PTT八卦版資料!