网站爬虫原理,基于浏览器点击行为还原可接口请求

爬虫这个词细节来说本质只有一件事,把浏览器发出的请求,换一种方式再发一遍

问题不是怎么发请求,而是:

  • 请求是怎么构造的
  • 参数从哪里来的
  • 哪些字段不能少

从一个点击动作开始

打开一个网站,例如一个列表页。

执行一个动作,如点击下一页或点击加载更多


用浏览器抓请求

  1. 按 F12 打开 DevTools
  2. 切换到 Network
  3. 勾选 XHR / Fetch
  4. 点击页面按钮

观察变化

会出现一个新请求,例如:

复制代码
https://api.example.com/list?page=2

关键点

这个请求就是爬虫入口。


二、确认请求是否可以独立执行

复制这个请求。


用 curl 测试

复制代码
curl 'https://api.example.com/list?page=2' \
  -H 'User-Agent: ...' \
  -H 'Cookie: ...'

观察结果

  • 如果返回数据 → 请求完整
  • 如果返回错误 → 缺少参数

三、找出哪些参数是必须的

在 DevTools 中查看:

  • Headers
  • Query 参数
  • Request Body

重点字段

例如:

  • Cookie
  • Authorization
  • Token

删除法验证

逐个删除字段,再发请求 哪个删掉会失败 → 必须保留

这个过程可以直接验证,不依赖猜测。


如果接口需要登录:


  1. 登录网站
  2. 打开 DevTools → Application
  3. 查看 Cookie

在请求中带上

复制代码
Cookie: session=xxxx

验证

重新发送请求:

  • 返回数据 → 登录态有效

五、当接口被混淆或加密

有些网站会出现:

  • 参数加密
  • 请求签名

用代理工具观察

使用 Charles 或 Proxyman 或 Sniffmaster:

  1. 启动工具
  2. 打开网页
  3. 触发请求

对比两次请求

观察参数变化和 Header 变化


判断方式

如果同一个请求每次参数不同、但结果正常

说明存在动态参数。


定位参数生成位置

打开 DevTools 的 Sources 面板。

操作步骤

  1. 找到请求对应 JS 文件
  2. 搜索接口路径
  3. 找到调用位置

断点调试

在发送请求前打断点:查看参数生成过程、记录计算逻辑


如果请求来自移动端时

有些接口在 PC 上不可见,例如:

  • App 专用接口
  • H5 内嵌接口

用 SniffMaster 抓取移动流量

操作步骤

  1. 用 USB 连接 iPhone
  2. 解锁设备
  3. 点击"信任此电脑"
  4. 启动 SniffMaster(抓包大师)
  5. 选择设备
  6. 安装描述文件
  7. 进入 HTTPS 暴力抓包模式
  8. 点击开始

触发请求

在手机上打开页面然后点击按钮,可以看到 API 请求 、Header 、请求路径


只抓目标接口

移动端流量较多,需要筛选。

筛选方式

  1. 点击 选择 App

  2. 勾选目标应用

  3. 使用关键字过滤

    /list


把抓到的请求转成代码

例如用 Python:

复制代码
import requests

url = "https://api.example.com/list?page=2"
headers = {
    "User-Agent": "...",
    "Cookie": "session=xxxx"
}

response = requests.get(url, headers=headers)
print(response.text)

运行代码, 返回数据 → 爬虫成功


爬虫可以用什么工具

工具 作用
DevTools 找请求入口
Charles / Proxyman 分析参数变化
SniffMaster 获取移动端接口
Python requests 实现爬取

如果一个接口满足,可以独立请求,而且参数明确,重点是返回数据稳定那么久就可以认为已经完成抓包到爬虫的转换。

本文章仅用于学习参考,不得做违法行为。

相关推荐
hkNaruto6 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
IT_陈寒6 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
Acro6 小时前
快给macOS 上的Grok Bot换一套皮肤
前端
flash俊杰6 小时前
双引擎 OCR 编排:逐页判定、视觉优先、partial 语义与三层超时
前端
计算机魔术师6 小时前
Reddit 每周被 Google 偷走 100 万次点击,CEO 摊牌了
前端
前端繁华如梦6 小时前
用 React Three Fiber 做一栋能编辑的教学楼数字孪生
前端
前端繁华如梦6 小时前
用 React Three Fiber 做一套智慧医院数字孪生:编辑器、大屏和 BIM 浏览器
前端
俊昭喜喜里7 小时前
理解全局跨域CORS配置
前端
香芋芋圆8 小时前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
AIsoft_86898 小时前
学术讲座录音如何整理?录音APP可行吗
android·iphone