SlideShare a Scribd company logo
1 of 33
Download to read offline
Cookie
Set-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 Cookie
Access 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-cookie
Access to Page
Hands-on Practice
⽤用Python requests抓取PTT八卦版資料!

More Related Content

Viewers also liked

Viewers also liked (7)

Implementation of Rubik's Cube Formula in PyCuber
Implementation of Rubik's Cube Formula in PyCuberImplementation of Rubik's Cube Formula in PyCuber
Implementation of Rubik's Cube Formula in PyCuber
 
Intro to Apache Spark - Lab
Intro to Apache Spark - LabIntro to Apache Spark - Lab
Intro to Apache Spark - Lab
 
Building custom kernels for IPython
Building custom kernels for IPythonBuilding custom kernels for IPython
Building custom kernels for IPython
 
IPython & Jupyter
IPython & JupyterIPython & Jupyter
IPython & Jupyter
 
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
 
Jupyter Kernel: How to Speak in Another Language
Jupyter Kernel: How to Speak in Another LanguageJupyter Kernel: How to Speak in Another Language
Jupyter Kernel: How to Speak in Another Language
 
Intro to Apache Spark
Intro to Apache SparkIntro to Apache Spark
Intro to Apache Spark
 

PyCon 2015 Crawler Tutorial Explain Cookies