Python爬蟲 模擬登錄 requests版

前言

網站必須是登錄狀態才能查看網站信息,是最常見的反爬手段,下面我分享一下request模擬登錄狀態進行請求

目錄

模擬登錄的原理

直接復制網站Cookie模擬登錄狀態

通過登錄接口信息破解出Cookie模擬登錄狀態


模擬登錄的原理

網站是使用Cookie和session記錄網站的登錄狀態的

常見有三種情況

情況一

????????直接把用戶信息放到Cookie里面,明文暴露用戶信息,不安全,一般很少網站使用

情況二

????????網站通過session對用戶信息進行鍵值對的方式進行存儲,sesionID和用戶信息,cookie存儲的是sessionID,后臺通過cookie存儲的sessionID來對用戶信息進行尋找

情況三

????????分布式情況下,后臺把用戶信息存儲到Redis里面了,原理和情況二一樣

其他情況加入反爬加密,需要自己解密了

總結: 無論他是使用那種情況開發登錄功能,一般登錄狀態的信息在請求頭cookie或者Authorization里面

所以我們在request請求的時候拿到網站Cookie或者Authorization就可以保證網站的登錄狀態了,也就模擬了用戶登錄

直接復制網站Cookie模擬登錄狀態

這種適合自己臨時使用,因為Cookie會變,這樣獲取肯定不能長時間使用

找到你需要請求的接口,找到Cookie的字符串

import requests#添加請求頭用戶代理,模擬真人行為
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
}cookies = '在網頁上面獲取的cookie字符串'#處理Cookie字符串可以放到request里面使用
cookies = {item.split('=')[0]: item.split('=')[1] for item in cookies.split("; ")}
cookies = requests.utils.cookiejar_from_dict(cookies)url = "請求網址"response = requests.get(url, headers=headers, cookies=cookies)#得到網頁源代碼
print(response.text)

通過登錄接口信息破解出Cookie模擬登錄狀態

這種就是先使用這個網站的登錄接口進行登錄,看返回的信息里面一般是有生成Cookie信息的原材料

如果網站沒有反爬機制,就直接把Cookie信息給你了,下面我展示一下沒有反爬機制的代碼邏輯

import requests#給請求頭加入用戶代理,模擬真人環境
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
}#我以登錄接口是post請求為例
loginUrl = "網站的登錄請求路徑"#請求體
loginData = {"key1": "value1","key2": "value2","key3": "value3"
}#調用請求接口
loginResponse = requests.post(loginUrl, data=loginData, headers=headers)#此時可以拿到登錄接口返回的cookie數據
#放入Cookie模擬登錄狀態,調用目標請求網站網址
url = "目標網站的網址"
res = requests.get(url, headers=headers,cookies=loginResponse.cookies)
#獲取到目標請求網頁的源代碼
print(res.text)

其實大多數網站是有反爬機制的,所以上面這種情況適用的網站很少

如果有反爬機制,他會把返回的Cookie信息進行加密處理什么的,那么就需要自己自行探索了

拿到Cookie信息,后面就和《直接復制網站Cookie模擬登錄狀態》步驟一樣了

如果很復雜,解密不了,可以操控瀏覽器來進行對Cookie的獲取,如果有需要的同志可以看我的文章

selenium基礎知識 和 模擬登錄selenium版本-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90006.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90006.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90006.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一些改進策略

1.要計算一個神經網絡模型的總參數量、可訓練參數量以及計算量(FLOPs),可以使用以下步驟: ### 計算總參數量和可訓練參數量: 1. **逐層計算參數量**: - 對于每一層,確定該層的參數量。這通…

React Native響應式布局實戰:告別媒體查詢,擁抱跨屏適配新時代

前言:當設計師說"這個頁面要適配所有手機和平板…" “什么?React Native不支持CSS媒體查詢?那怎么實現響應式布局?”——這是很多剛接觸React Native的開發者會遇到的靈魂拷問。 但別慌,沒有@media,我們照樣能玩轉多端適配!想象一下:你的App在iPhone SE的小…

[Java惡補day39] 整理模板·考點六【反轉鏈表】

考點六【反轉鏈表】 【考點總結】 1. 206. 【題目】 【核心思路】 【復雜度】 時間復雜度: O ( ) O() O()。 空間復雜度: O ( ) O() O()。 【代碼】 92. 【題目】 【核心思路】 【復雜度】 時間復雜度: O ( ) O() O()。 空間復雜度&a…

7,TCP服務器

1,創建一個工程 文件目錄:

Modbus_TCP_V5 新功能

odbus TCP 服務器指令 MB_SERVER V5.0 新功能概述 如下圖1所示服務器指令 MB_SERVER 從 V5.0 以后增加了三個新功能,分別為: 訪問數據塊中的數據區域,而不是直接訪問 MODBUS 地址過程映像區的讀訪問限制統計變量 NDR_immediate 和 DR_immed…

2-RuoYi-UI管理平臺的啟動

RuoYi-UI是RuoYi后端框架的管理中心(基于 Vue.js 的前端項目)的詳細配置與啟動指南,結合官方文檔和常見實踐整理,涵蓋環境準備、配置修改、啟動流程及問題排查。 ?? 一、環境準備 Node.js 版本要求:≥12.0(推薦 ≥14.0 或 18.18+ 適配 Vue3) 安裝后驗證: node -v …

WPF學習筆記(21)ListBox、ListView與控件模板

ListBox與控件模板 一、 ListBox默認控件模板詳解二、ItemsPresenter集合數據呈現1. 概述2. 示例 三、 ListView默認控件模板詳解1. 概述2. 示例 一、 ListBox默認控件模板詳解 WPF 中的大多數控件都有默認的控件模板。 這些模板定義了控件的默認外觀和行為,包括控…

操作系統【2】【內存管理】【虛擬內存】【參考小林code】

本文完全參考 虛擬內存內存分段內存分頁段頁式內存管理Linux內存管理 一、虛擬內存 1. 單片機的絕對物理地址 以單片機作為引子,它沒有操作系統,每次寫完程序是借助工具將程序燒錄進單片機,程序才能運行。 單片機由于沒有操作系統&#…

【王樹森推薦系統】召回05:矩陣補充、最近鄰查找

概述 這節課和后面幾節課將詳細講述向量召回,矩陣補充是向量召回最簡單的一種方法,不過現在已經不太常用這種方法了本節課的矩陣補充是為了幫助理解下節課的雙塔模型上節課介紹了embedding,它可以把用戶ID和物品ID映射成向量 矩陣補充 模型…

C# 事件(訂閱事件和觸發事件)

訂閱事件 訂閱者向事件添加事件處理程序。對于一個要添加到事件的事件處理程序來說,它必須具有 與事件的委托相同的返回類型和簽名。 使用運算符來為事件添加事件處理程序,如下面的代碼所示。事件處理程序位于該運 算符的右邊。事件處理程序的規范可以…

64頁精品PPT | 基于DeepSeek的數據治理方案AI大數據治理解決方案數據治理大模型解決方案

這份PPT文檔是關于基于DeepSeek的大模型技術在數據治理方案中的應用介紹。強調數據作為新型生產要素與人工智能技術相結合的重要性,指出大模型憑借強大的文學理解、生成能力以及多模態數據處理能力,能為數據治理帶來新機遇。文檔詳細闡述了數據資產化的路…

【文獻筆記】Tree of Thoughts: Deliberate Problem Solving with Large Language Models

Tree of Thoughts: Deliberate Problem Solving with Large Language Models https://github.com/princeton-nlp/tree-of-thought-llm 標題翻譯:思維樹:利用大型語言模型問題求解 1. 內容介紹 1.1. 背景 決策過程有兩種模式: 快速、自動…

使用 Mathematical_Expression 從零開始實現數學題目的作答小游戲【可復制代碼】

從零開始實現數學題目的作答小游戲 開源技術欄 使用 Mathematical_Expression 讓計算機做出題人,讓代碼與數學碰撞出趣味火花。 目錄 文章目錄 從零開始實現數學題目的作答小游戲目錄 從零開始實現數學題目的作答小游戲:讓代碼與數學碰撞出趣味火花為…

DQL-9-小結

DQL-9-小結 小結DQL語句 小結 DQL語句 SELECT 字段列表 -- 字段名 [AS] 別名FROM 表名列表WHERE條件列表 -- >、 >、 <、 <、 、 <>、 like、 between ... and、 in、 and、 or, 分組之前過濾 GROUP BY分組字段列表HAVING分組后條件列表 -- 分組之后…

[netty5: WebSocketServerHandshaker WebSocketServerHandshakerFactory]-源碼分析

在閱讀這篇文章前&#xff0c;推薦先閱讀以下內容&#xff1a; [netty5: WebSocketFrame]-源碼分析[netty5: WebSocketFrameEncoder & WebSocketFrameDecoder]-源碼解析 WebSocketServerHandshakerFactory WebSocketServerHandshakerFactory 用于根據客戶端請求中的 Web…

數據挖掘:深度解析與實戰應用

在當今數字化時代&#xff0c;數據挖掘已經成為企業獲取競爭優勢的關鍵技術之一。通過從大量數據中提取有價值的信息&#xff0c;企業可以更好地理解客戶需求、優化業務流程、提高運營效率。本文將深入探討數據挖掘的核心技術、實際應用案例以及如何在企業中實施數據挖掘項目。…

LLM面試題14

算法崗面試題 介紹下Transformer模型。 Transformer本身是一個典型的encoder-decoder模型&#xff0c;Encoder端和Decoder端均有6個Block,Encoder端的Block包括兩個模塊&#xff0c;多頭self-attention模塊以及一個前饋神經網絡模塊&#xff1b;Decoder端的Block包括三個模塊&…

Java金融場景中為什么金額字段禁止使用浮點類型(float/double)?

引言 Java金融場景中為什么金額字段禁止使用浮點類型&#xff1f;這是一篇你不能忽視的“爆雷”警告&#xff01; 在金融、電商、支付、清結算等業務系統中&#xff0c;浮點類型是絕對禁區&#xff01; &#x1f6a8;一、核心警告&#xff1a;浮點類型不是十進制數&#xff01;…

SVN下載與拉取

大家好我是蘇麟&#xff0c;今天聊一聊SVN。 SVN官網&#xff1a;下載 TortoiseSVN - TortoiseSVN 軟件 根據系統選擇32位還是64位 打開文件 安裝&#xff0c;下一步&#xff0c;下一步 安裝成功后&#xff0c;右鍵找到SVNcheck 輸入地址 輸入用戶名和密碼就OK了 這期就到這里…

數據結構筆記8:堆

目錄 滿二叉樹&#xff1a; 完全二叉樹&#xff1a; 堆是一種特殊的完全二叉樹&#xff1a; 我們可以以數組的方式存儲堆。 父節點和子節點下標關系的推導&#xff1a; 1.使用數學歸納法證明n2 1 n0&#xff1a; 2.使用邊和節點的關系證明n2 1 n0&#xff1a; 我們…