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

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

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

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

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

从一个点击动作开始

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

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


用浏览器抓请求

  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

删除法验证

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

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


四、处理 Cookie 与登录态

如果接口需要登录:


获取 Cookie

  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实现爬取

如果一个接口满足,可以独立请求,而且参数明确,重点是返回数据稳定那么久就可以认为已经完成抓包到爬虫的转换。
本文章仅用于学习参考,不得做违法行为。

http://www.jsqmd.com/news/581937/

相关文章:

  • 3分钟上手AppImageLauncher:让Linux应用安装像Windows一样简单 [特殊字符]
  • 实在Agent实测:人与Agent将如何协同工作?深度拆解企业级AI助理重塑生产力的5大真相
  • java的@ComponentScan(com.sx)怎么理解?
  • Local Moondream2快速部署:VS Code Dev Container一键开发环境
  • 毕业设计作品精选【芳芯科技】酒驾检测座椅设计
  • 3个技术突破让赛博朋克2077玩家实现游戏体验自由定制
  • 通用物体识别-ResNet18镜像5分钟快速部署:零基础搭建AI图像分类服务
  • Redis 从入门到精通(四):字符串操作详解
  • 游戏脚本助手,电脑点击器,脚本自动点击识图找图_无限试用版
  • c/c++代码如何在python环境中调用(本次应用需求:通过c++中的算法处理来自串口的数据)
  • 第一次才搞清楚,什么叫医保报销【以职工医保带入说明】!
  • Tree-sitter解析代码
  • Qwen3-32B部署全攻略:3步搞定,零基础也能快速上手
  • AgentCPM深度研报助手企业级部署架构设计:高并发下的性能与成本优化
  • 【西工大主办、连续多届稳定检索】第七届机械仪表与自动化国际学术会议(ICMIA 2026)
  • 技术方案: 封装 OpenCode 和 ClaudeCode 作为LLM API 服务,open ai LLM API 风格的,一个深度研究技术方案报告
  • C语言main函数到底该怎么写?6种写法全解析
  • 2026年农民工工资保函担保公司如何选择?一份专业排名与对比指南 - 速递信息
  • 2026年揭秘:GEO搜索优化公司如何赢得专业好名声?
  • Mac Mouse Fix安装方式决策指南:从需求分析到方案选择
  • Vin象棋:基于AI视觉的中国象棋智能辅助工具,轻松提升对弈水平
  • 钢边木箱主流方案横向评测分析
  • 提升爬虫效率:基于clawhub与快马平台实现自动化数据抓取与处理
  • PLA打印革命:AI算法破解行业痛点
  • 上海隔绝工地噪音门窗多少钱,凤铝新家装门窗工厂费用合理吗 - 工业品网
  • 反模式:从工程结果反推日常决策
  • 突破语言壁垒:Axure RP 9/10/11 极速汉化解决方案
  • # Java Web自研框架18年架构决策复盘(系列文)
  • 网络安全入门:SQL注入从原理到实战
  • Visual C++运行库一站式解决方案:从问题排查到高级应用指南