Python爬蟲教程-12-爬蟲使用cookie爬取登錄后的頁面(人人網)(上)


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呢?馬上揭曉:

編寫爬蟲代碼


# 爬蟲使用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 爬蟲隨筆


- 本筆記不允許任何個人和組織轉載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM