濮阳杆衣贸易有限公司

主頁 > 知識庫 > Django利用Cookie實(shí)現(xiàn)反爬蟲的例子

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

熱門標(biāo)簽:地圖標(biāo)注微信發(fā)送位置不顯示 蓋州市地圖標(biāo)注 315電話機(jī)器人廣告 南京銷售外呼系統(tǒng)軟件 上海機(jī)器人外呼系統(tǒng)哪家好 房產(chǎn)電銷外呼系統(tǒng) 浙江電銷卡外呼系統(tǒng)好用嗎 地圖制圖標(biāo)注位置改變是移位嗎 地圖標(biāo)注的意義點(diǎn)

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

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

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

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

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

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

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

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

# 在響應(yīng)內(nèi)容中刪除Cookie
return HttpResponse('Hello world')
response。delete_cookie('key')
return response

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

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

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

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

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

您可能感興趣的文章:
  • Python中利用aiohttp制作異步爬蟲及簡單應(yīng)用
  • Python爬蟲之線程池的使用
  • python基礎(chǔ)之爬蟲入門
  • python爬蟲請求庫httpx和parsel解析庫的使用測評
  • Python爬蟲之爬取最新更新的小說網(wǎng)站
  • 用Python爬蟲破解滑動驗(yàn)證碼的案例解析
  • Python爬蟲之必備chardet庫
  • Python爬蟲框架-scrapy的使用
  • Python爬蟲之爬取二手房信息
  • python爬蟲之爬取百度翻譯
  • python爬蟲基礎(chǔ)之簡易網(wǎng)頁搜集器
  • python爬蟲之生活常識解答機(jī)器人
  • Python異步爬蟲實(shí)現(xiàn)原理與知識總結(jié)

標(biāo)簽:日照 臨汾 克拉瑪依 貴州 陽泉 雙鴨山 赤峰 金華

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django利用Cookie實(shí)現(xiàn)反爬蟲的例子》,本文關(guān)鍵詞  Django,利用,Cookie,實(shí)現(xiàn),反,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django利用Cookie實(shí)現(xiàn)反爬蟲的例子》相關(guān)的同類信息!
  • 本頁收集關(guān)于Django利用Cookie實(shí)現(xiàn)反爬蟲的例子的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    黔南| 沈阳市| 迭部县| 邳州市| 清远市| 当雄县| 达孜县| 扶绥县| 皮山县| 隆回县| 绍兴市| 观塘区| 郸城县| 台南市| 岳西县| 台北市| 古田县| 延安市| 元氏县| 哈尔滨市| 庆城县| 保德县| 宿州市| 宁国市| 三门峡市| 修文县| 云林县| 裕民县| 沧源| 大理市| 三门峡市| 赤壁市| 衡南县| 邳州市| 贡嘎县| 桃江县| 邯郸市| 南昌县| 宜州市| 文山县| 陵水|