Python爬蟲教程-12-爬蟲使用cookie(上)
- 爬蟲關於cookie和session,由於http協議無記憶性,比如說登錄淘寶網站的瀏覽記錄,下次打開是不能直接記憶下來的,后來就有了cookie和session機制
Python爬蟲爬取登錄后的頁面
所以怎樣讓爬蟲使用驗證用戶身份信息的cookie呢,換句話說,怎樣在使用爬蟲的時候爬取已經登錄的頁面呢,這就是本篇的重點
cookie和session介紹
- cookie是發給用戶的(即http瀏覽器)的一段信息
- session是保存在服務器上的對應的另一半信息,用來記錄記錄用戶信息
- cookie和session區別和聯系:
- 1.存放位置不同:cookie保存在本地,session保存在服務器
- 2.cookie不安全
- 為什么不安全,因為cookie是保存在本地的,也就是說用戶可以就本地找到后進行修改
- 所以一般用來存放用戶身份信息,常用來識別用戶身份,比如用戶名+登錄密碼(站點也就不怕被修改了)
- 當我們關閉瀏覽器后,再次打開一些網站,不用再次登錄,也正是因為使用了保存在本地瀏覽器的cookie
- 3.session會保存在服務器上有過期時間,cookie也有
- 4.單個cookie保存數據不超過4k,部分瀏覽器會限制一個站點最多保存20個
- 5.session保存在服務器
- 一般情況下,session是放在內存中或者數據庫中
使用cookie登錄的網站
例如人人網:
第一步:Chrome打開登錄

第二步:拷貝Chrome登錄后的地址,使用火狐瀏覽器打開

這可以看到報錯302
原因就是火狐瀏覽器的cookie和Chrome保存的cookie不一樣,站點判斷用戶身份改變,所以不允許登錄,另一方面,也就說明我們使用 cookie 驗證身份是成功的
主角登場-爬蟲使用cookie
既然其他瀏覽器不能直接訪問網站,我們的爬蟲就更不能了,所以怎樣讓爬蟲使用驗證用戶身份信息的cookie呢?馬上揭曉:
編寫爬蟲代碼
- 案例v12cookie2文件:https://xpwi.github.io/py/py爬蟲/py12cookie2.py
- 想要未使用cookie的對照案例,可以直接下載:
案例v12cookie1文件:https://xpwi.github.io/py/py爬蟲/py12cookie1.py
# 爬蟲使用cookie
from urllib import request
if __name__ == '__main__':
url = "http://www.renren.com/967487029/profile"
headers = {
# Cookie值從登錄后的瀏覽器,拷貝,方法文章上面有介紹
"Cookie": "anonymid=jkw22rj1lr18nw; depovince=GW; _r01_=1; JSESSIONID=abcUPkh_yMcQi56IB9avw; ick_login=79ce148f-80c5-4a79-ad1e-897e847d7f34; ick=d4c0f36e-a5b8-4063-b781-8a8474c4a289; t=07c15f420c005cec1ff760ee5370cfeb9; societyguester=07c15f420c005cec1ff760ee5370cfeb9; id=967487029; xnsid=bf077aca; XNESSESSIONID=6302ff129554; BAIDU_SSP_lcr=https://www.baidu.com/link?url=4ejhDX-FjIJI0Ma--EY03Dbwea0D_c1HhU7ExMXfUxO&wd=&eqid=c4ff527c00007cb4000000035b74fb58; wp_fold=0; jebe_key=d4adac05-f904-479c-bf00-a4b55d282a51%7C43e5f9c3c001a1d1846f8b82a462cefd%7C1534398658919%7C1; jebecookies=6031f512-d289-4dff-b1d6-aaa7849bd1ff|||||"
}
req = request.Request(url=url,headers=headers)
rsp = request.urlopen(req)
html = rsp.read().decode()
with open("rsp.html","w",encoding="utf-8")as f:
# 將爬取的頁面
print(html)
f.write(html)
運行結果

現在我們可以在返回的html頁面看到自己的登錄信息了,也就說明cookie使用成功了
今天介紹的是手動拷貝cookie,后面會介紹如何自動的使用!
更多文章鏈接:Python 爬蟲隨筆
- 本筆記不允許任何個人和組織轉載
