爬虫技术-获取浏览器身份认证信息(如 Cookie、Token、Session 等)
方法一:通过浏览器开发者工具查看和提取 Cookie / Token
📌 示例场景:
你在使用一个网站时已经登录了,想看看这个网站是如何保存你的身份凭证的。
🔧 操作过程:
- 打开浏览器(例如 Chrome),按
F12
或右键页面选择“检查”打开开发者工具。 - 切换到 Application 标签页。
- 在左侧菜单中找到:
- Cookies 下查看域名下的所有 Cookie。
- Local Storage 或 Session Storage 查看存储的 Token。
- 复制你关心的身份凭证字段,比如
token
,sessionid
,Authorization
等。
🧠 原理说明:
浏览器在执行网页脚本时会将用户身份信息存储在 Cookie、LocalStorage 或 SessionStorage 中。开发者工具可以让你直接访问这些数据。
✅ 优点:
- 简单直观,适合调试。
- 不需要编程基础即可操作。
❌ 缺点:
- 无法自动化获取。
- 无法实时监听接口请求头中的身份信息。
- 只能手动复制粘贴,不适合批量或程序调用。
方法二:通过浏览器插件自动监听网络请求并提取身份信息
📌 示例场景:
你想监控某个网站每次请求都带了什么身份凭证,以便分析其认证机制。
🔧 操作过程:
- 安装浏览器插件,比如:
- Chrome DevTools
- Tampermonkey(自定义脚本)
- Requestly 或 ModHeader(修改/监听请求)
- 使用插件功能监听特定 URL 的请求。
- 插件可以在请求发出前或响应返回后,记录下请求头中的身份信息字段(如
Authorization
,X-Token
等)。
🧠 原理说明:
浏览器插件拥有对网页请求的拦截权限,可以读取或修改 HTTP 请求头和响应内容。
✅ 优点:
- 可监听任意请求头中的身份信息。
- 支持自动化记录和导出。
- 适用于逆向工程、接口调试等场景。
❌ 缺点:
- 需要一定的插件配置能力。
- 有些网站会检测插件行为并阻止。
- 对非标准字段可能需要手动解析。
方法三:通过 Selenium 自动化模拟登录并获取身份信息
📌 示例场景:
你正在写一个爬虫程序,需要模拟登录某网站,并获取其身份认证信息用于后续请求。
🔧 操作过程:
- 使用 Python + Selenium 启动浏览器。
- 自动填写用户名密码进行登录。
- 登录成功后,通过 API 获取 Cookie 或执行 JS 脚本读取 LocalStorage。
- 将身份信息保存下来,供后续请求使用。
🧠 原理说明:
Selenium 是一个自动化测试工具,它可以控制浏览器完成点击、输入等操作,并读取页面上下文中的 Cookie 和本地存储。
✅ 优点:
- 可以完整模拟用户行为。
- 适合做自动化任务(如爬虫、测试)。
- 可获取 Cookie、LocalStorage 等多种凭证。
❌ 缺点:
- 启动浏览器较慢,资源占用高。
- 如果网站有反爬机制(如验证码),处理成本较高。
- 不能直接读取请求头中的身份信息。
方法四:通过 Chrome 浏览器远程调试模式复用已登录状态
📌 示例场景:
你已经在浏览器里登录了一个网站,不想再重新登录一次,想直接复用这个浏览器会话。
🔧 操作过程:
- 手动启动 Chrome 并启用远程调试端口(如
--remote-debugging-port=9222
)。 - 使用 Selenium 连接该浏览器实例。
- 直接读取当前页面的 Cookie 或执行 JS 获取 Token。
🧠 原理说明:
Chrome 提供了远程调试接口,允许外部程序连接并控制浏览器。通过这种方式,你可以复用已有登录状态,避免重复登录。
✅ 优点:
- 不需要再次登录。
- 可以快速获取身份信息。
- 适合调试或开发阶段使用。
❌ 缺点:
- 需要手动启动浏览器并指定参数。
- 多人共用环境时容易冲突。
- 不适合部署在服务器上运行。
方法五:通过浏览器插件注入脚本捕获身份信息
📌 示例场景:
你想在每次访问目标网站时自动记录下它的身份信息,比如每次发送请求时的 Authorization
。
🔧 操作过程:
- 安装 Tampermonkey 插件。
- 新建一个用户脚本,使用
XMLHttpRequest
或fetch
拦截器。 - 每次请求发出时,读取请求头,判断是否有身份凭证字段。
- 可将结果输出到控制台或发送到自己的服务器。
🧠 原理说明:
用户脚本可以在网页加载时注入代码,从而拦截并分析所有的网络请求,获取其中的身份信息。
✅ 优点:
- 可以实时监听所有请求的身份信息。
- 无需登录,只需访问页面即可。
- 适合研究接口认证机制。
❌ 缺点:
- 需要编写脚本,有一定门槛。
- 一些网站会检测脚本注入并屏蔽。
- 对 HTTPS 请求可能会有安全限制。
总结对比表
方法 | 是否可获取 Cookie | 是否可获取 LocalStorage | 是否可获取请求头 | 是否支持自动化 | 是否需编程 |
---|---|---|---|---|---|
开发者工具手动查看 | ✅ | ✅ | ❌ | ❌ | ❌ |
浏览器插件监听请求 | ✅ | ❌ | ✅ | ✅(部分) | ✅ |
Selenium 模拟登录 | ✅ | ✅ | ❌ | ✅ | ✅ |
Chrome 调试模式 | ✅ | ✅ | ❌ | ✅ | ✅ |
用户脚本拦截请求 | ✅ | ✅ | ✅ | ✅ | ✅ |