欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django利用Cookie實現(xiàn)反爬蟲的例子

 更新時間:2021年04月26日 09:55:36   作者:Erudite  
這篇文章主要介紹了Django利用Cookie實現(xiàn)反爬蟲,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

我們知道,Diango 接收的 HTTP 請求信息里帶有 Cookie 信息。Cookie的作用是為了識別當前用戶的身份,通過以下例子來說明Cookie的作用。例:

瀏覽器向服務器(Diango)發(fā)送請求,服務器做出響應之后,二者便會斷開連接(會話結束),下次用戶再來請求服務器,服務器沒有辦法識別此用戶是誰,比如用戶登錄功能,如果沒有 Cookie 機制支持,那么只能通過查詢數(shù)據(jù)庫實現(xiàn),并且每次刷新頁面都要重新操作一次用戶登錄才可以識別用戶,這會給開發(fā)人員帶來大量的冗余工作,簡單的用戶登錄功能會給服務器帶來巨大的負載壓力。

Cookie 是從瀏覽器向服務器傳遞數(shù)據(jù),讓服務器能夠識別當前用戶,而服務器對 Cookie 的別機制是通過 Session 實現(xiàn)的,Session 存儲了當前用戶的基本信息,如姓名,年齡和性別等,由于Cookie 存儲在瀏覽器里面,而且Cookie 的數(shù)據(jù)是由服務器提供的,如果服務器將用戶信息直接保存在瀏覽器中,就很容易泄露用戶信息,并且Cookie大小不能超過4KB,不能支持中文,因此要一種機制在服務器的某個域中存儲用戶數(shù)據(jù),這個域就是Session。

總而言之,Cookie 和 Session 是為了解決HTTP協(xié)議無狀態(tài)的弊端、為了讓瀏覽器和服務端建立長久聯(lián)系的會話而出現(xiàn)的。

Cookie除了解決 HTTP 協(xié)議無狀態(tài)的弊端之外,還可以利用 Cookie 實現(xiàn)反爬蟲機制。隨著大數(shù)據(jù)和人工智能的發(fā)展,爬蟲技術日益完善,網(wǎng)站為了保護自身數(shù)據(jù)的安全性和負載能力,都會在網(wǎng)站里設置反爬蟲機制。

由于 Cookie 是通過 HTTP 協(xié)議從瀏覽器傳遞到服務器的,因此從視圖函數(shù)的請求對象 request 可以獲取 Cookie 對象,而Diango提供以下方法來操作Cookie對象:

# 獲取 Cookie 與 Python 的字典讀取方法一致
request。COOKIES['uuid']
request。COOKIES。get('uuid')

# 在響應內容中添加 Cookie, 將 Cookie 返回給瀏覽器
return HttpResponse('Hello world')
response。set_cookie('key', 'value')
return response

# 在響應內容中刪除Cookie
return HttpResponse('Hello world')
response。delete_cookie('key')
return response

操作 Cookie 對象無非就是對 Cookie 進行獲取、添加和刪除處理。添加Cookie 信息是使用 set_cookie 方法實現(xiàn)的,該方法是由響應類 HttpResponseBase 定義的

  • key:設ECookie的key,類似字典的key。
  • value:設 Cookie的value,類似字典的value。
  • max age:設置Cookie的有效時間,以秒為單位。
  • expires:設置Cookie的有效時間,以日期格式為單位。
  • path:設置Cookie的生效路徑,默認值為根目錄(網(wǎng)站首頁)
  • domain:設置Cookie生效的域名。
  • secure:設置傳輸方式,若為False,則使用HTTP,否則使用HTTPS。
  • httponly:設置是否只能使用HTTP協(xié)議傳輸。
  • samesite:設置強制模式,可選值為 lax 或 strict,主要防止CSRF攻擊。

常見的反爬蟲主要是設置參數(shù)max_age,expires 和 path。參數(shù) max_age或 expires 用于設置 Cookie 的有效性,使爬程序無法長時間爬取網(wǎng)站數(shù)據(jù);參數(shù) path 用于將 Cookie 的生成過程隱藏起來,不容易讓爬蟲開發(fā)者找到并破解。

希望各位讀者對Cookie實現(xiàn)反爬蟲有一定認識。

到此這篇關于Django利用Cookie實現(xiàn)反爬蟲的文章就介紹到這了,更多相關Django反爬蟲內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳細介紹Python的鴨子類型

    詳細介紹Python的鴨子類型

    相信python的開發(fā)者對于python的鴨子類型比較熟悉,鴨子類型在維基百科中的準確定義是‘是動態(tài)類型的一種風格。在這種風格中,一個對象有效的語義,不是由繼承自特定的類或實現(xiàn)特定的接口,而是由"當前方法和屬性的集合"決定’。所以這篇文章給大家python的鴨子類型。
    2016-09-09
  • python用Joypy繪制嵴線圖實例

    python用Joypy繪制嵴線圖實例

    大家好,本篇文章主要講的是python Joypy繪制嵴線圖實例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 詳解django+django-celery+celery的整合實戰(zhàn)

    詳解django+django-celery+celery的整合實戰(zhàn)

    這篇文章主要介紹了詳解django+django-celery+celery的整合實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 你知道嗎實現(xiàn)炫酷可視化只要1行python代碼

    你知道嗎實現(xiàn)炫酷可視化只要1行python代碼

    這篇文章主要給大家介紹了關于利用Python進行數(shù)據(jù)可視化常見的9種方法!文中介紹的方法真的超實用!對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • python2.7 安裝pip的方法步驟(管用)

    python2.7 安裝pip的方法步驟(管用)

    這篇文章主要介紹了python2.7 安裝pip的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 人臉識別具體案例

    人臉識別具體案例

    出于興趣和對IU的喜愛,筆者花了幾天嘗試用爬蟲從百度圖片獲取人物圖片并下載,利用深度神經(jīng)網(wǎng)絡從其中識別出人,并將圖片保存至文件夾。若讀者有興趣可以參考下
    2021-04-04
  • Python中的函數(shù)式編程:不可變的數(shù)據(jù)結構

    Python中的函數(shù)式編程:不可變的數(shù)據(jù)結構

    今天小編就為大家分享一篇關于Python中的函數(shù)式編程:不可變的數(shù)據(jù)結構,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • python實現(xiàn)簡單socket通信的方法

    python實現(xiàn)簡單socket通信的方法

    這篇文章主要介紹了python實現(xiàn)簡單socket通信的方法,結合實例形式分析了socket通信服務端與客戶端的具體實現(xiàn)技巧,需要的朋友可以參考下
    2016-04-04
  • python MNIST手寫識別數(shù)據(jù)調用API的方法

    python MNIST手寫識別數(shù)據(jù)調用API的方法

    這篇文章主要介紹了python MNIST手寫識別數(shù)據(jù)調用API的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • python用plotly實現(xiàn)繪制局部放大圖

    python用plotly實現(xiàn)繪制局部放大圖

    大家好,本篇文章主要講的是python用plotly實現(xiàn)繪制局部放大圖,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02

最新評論