当前位置: 首页 > news >正文

爬虫技术-获取浏览器身份认证信息(如 Cookie、Token、Session 等)

方法一:通过浏览器开发者工具查看和提取 Cookie / Token

📌 示例场景:

你在使用一个网站时已经登录了,想看看这个网站是如何保存你的身份凭证的。

🔧 操作过程:

  1. 打开浏览器(例如 Chrome),按 F12 或右键页面选择“检查”打开开发者工具。
  2. 切换到 Application 标签页。
  3. 在左侧菜单中找到:
    • Cookies 下查看域名下的所有 Cookie。
    • Local StorageSession Storage 查看存储的 Token。
  4. 复制你关心的身份凭证字段,比如 token, sessionid, Authorization 等。

🧠 原理说明:

浏览器在执行网页脚本时会将用户身份信息存储在 Cookie、LocalStorage 或 SessionStorage 中。开发者工具可以让你直接访问这些数据。

✅ 优点:

  • 简单直观,适合调试。
  • 不需要编程基础即可操作。

❌ 缺点:

  • 无法自动化获取。
  • 无法实时监听接口请求头中的身份信息。
  • 只能手动复制粘贴,不适合批量或程序调用。

方法二:通过浏览器插件自动监听网络请求并提取身份信息

📌 示例场景:

你想监控某个网站每次请求都带了什么身份凭证,以便分析其认证机制。

🔧 操作过程:

  1. 安装浏览器插件,比如:
    • Chrome DevTools
    • Tampermonkey(自定义脚本)
    • RequestlyModHeader(修改/监听请求)
  2. 使用插件功能监听特定 URL 的请求。
  3. 插件可以在请求发出前或响应返回后,记录下请求头中的身份信息字段(如 Authorization, X-Token 等)。

🧠 原理说明:

浏览器插件拥有对网页请求的拦截权限,可以读取或修改 HTTP 请求头和响应内容。

✅ 优点:

  • 可监听任意请求头中的身份信息。
  • 支持自动化记录和导出。
  • 适用于逆向工程、接口调试等场景。

❌ 缺点:

  • 需要一定的插件配置能力。
  • 有些网站会检测插件行为并阻止。
  • 对非标准字段可能需要手动解析。

方法三:通过 Selenium 自动化模拟登录并获取身份信息

📌 示例场景:

你正在写一个爬虫程序,需要模拟登录某网站,并获取其身份认证信息用于后续请求。

🔧 操作过程:

  1. 使用 Python + Selenium 启动浏览器。
  2. 自动填写用户名密码进行登录。
  3. 登录成功后,通过 API 获取 Cookie 或执行 JS 脚本读取 LocalStorage。
  4. 将身份信息保存下来,供后续请求使用。

🧠 原理说明:

Selenium 是一个自动化测试工具,它可以控制浏览器完成点击、输入等操作,并读取页面上下文中的 Cookie 和本地存储。

✅ 优点:

  • 可以完整模拟用户行为。
  • 适合做自动化任务(如爬虫、测试)。
  • 可获取 Cookie、LocalStorage 等多种凭证。

❌ 缺点:

  • 启动浏览器较慢,资源占用高。
  • 如果网站有反爬机制(如验证码),处理成本较高。
  • 不能直接读取请求头中的身份信息。

方法四:通过 Chrome 浏览器远程调试模式复用已登录状态

📌 示例场景:

你已经在浏览器里登录了一个网站,不想再重新登录一次,想直接复用这个浏览器会话。

🔧 操作过程:

  1. 手动启动 Chrome 并启用远程调试端口(如 --remote-debugging-port=9222)。
  2. 使用 Selenium 连接该浏览器实例。
  3. 直接读取当前页面的 Cookie 或执行 JS 获取 Token。

🧠 原理说明:

Chrome 提供了远程调试接口,允许外部程序连接并控制浏览器。通过这种方式,你可以复用已有登录状态,避免重复登录。

✅ 优点:

  • 不需要再次登录。
  • 可以快速获取身份信息。
  • 适合调试或开发阶段使用。

❌ 缺点:

  • 需要手动启动浏览器并指定参数。
  • 多人共用环境时容易冲突。
  • 不适合部署在服务器上运行。

方法五:通过浏览器插件注入脚本捕获身份信息

📌 示例场景:

你想在每次访问目标网站时自动记录下它的身份信息,比如每次发送请求时的 Authorization

🔧 操作过程:

  1. 安装 Tampermonkey 插件。
  2. 新建一个用户脚本,使用 XMLHttpRequestfetch 拦截器。
  3. 每次请求发出时,读取请求头,判断是否有身份凭证字段。
  4. 可将结果输出到控制台或发送到自己的服务器。

🧠 原理说明:

用户脚本可以在网页加载时注入代码,从而拦截并分析所有的网络请求,获取其中的身份信息。

✅ 优点:

  • 可以实时监听所有请求的身份信息。
  • 无需登录,只需访问页面即可。
  • 适合研究接口认证机制。

❌ 缺点:

  • 需要编写脚本,有一定门槛。
  • 一些网站会检测脚本注入并屏蔽。
  • 对 HTTPS 请求可能会有安全限制。

总结对比表

方法是否可获取 Cookie是否可获取 LocalStorage是否可获取请求头是否支持自动化是否需编程
开发者工具手动查看
浏览器插件监听请求✅(部分)
Selenium 模拟登录
Chrome 调试模式
用户脚本拦截请求
http://www.dtcms.com/a/265693.html

相关文章:

  • Python 中如何使用 Conda 管理版本和创建 Django 项目
  • 【Docker】如何设置 `wiredTigerCacheSizeGB` 和 `resources.limits.memory`
  • BenchmarkSQL 测试 PostgreSQL 时遇到 numeric field overflow 报错的原因与解决方案
  • 请求未达服务端?iOS端HTTPS链路异常的多工具抓包排查记录
  • 区块链真的会是未来吗?
  • TCP粘包、拆包、解决
  • 什么是协同归因和贡献归因
  • WhoDB:一款基于Web的免费AI数据库管理工具
  • 刷卡登入数据获取
  • 【ArcGISPro】基于Pro的Python环境进行Django简单开发Web
  • 两个PHY芯片之间,是如何连接进行通信的?
  • 并行科技MaaS平台支持文心4.5系列开源模型调用
  • MySQL主从延迟深度解析:现象、原因与实战解决方案
  • KMP(Kotlin Multiplatform)改造(Android/iOS)老项目
  • 舵轮时钟-STM32-28路PWM--ESP8266-NTP时间
  • Babylon.js 材质克隆与纹理共享:你可能遇到的问题及解决方案
  • 从UI设计到数字孪生实战演练:构建智慧城市的智慧停车系统
  • 大势智慧亮相第十八届中国智慧城市大会
  • 暑期出游,解锁“智慧”新玩法!
  • 浏览器原生控件上传PDF导致hash值不同
  • 使用HAProxy搭建Web群集:原理、步骤与实战总结
  • AlpineLinux安装RabbitMQ及其管理界面
  • 攻防世界0-MISC-隐藏的信息
  • VS Code 的 Copilot Chat 扩展程序
  • AI学习笔记三十:基于yolov8的web显示
  • 在 VSCode 中高效配置自定义注释模板 (无需插件)
  • 在小程序中实现实时聊天:WebSocket最佳实践
  • Tarjan 算法的两种用法
  • 支持向量机(SVM)分类
  • JavaScript的现代进阶:从ES6到ES15