尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
影刀RPA 网络请求拦截:捕获Ajax数据的正确姿势
title: “影刀RPA 网络请求拦截捕获Ajax数据的正确姿势”date: 2026-07-01author: 林焱影刀RPA 网络请求拦截捕获Ajax数据的正确姿势很多网站的数据不直接写在HTML里而是页面加载完后通过Ajax异步请求获取。直接抓HTML拿不到数据用XPath也定位不到。这时候要拦截网络请求直接拿API返回的JSON比解析HTML干净100倍。什么情况用什么必须用请求拦截的场景页面数据通过异步Ajax加载HTML里只有骨架商品价格、库存、评论等数据是动态渲染的分页数据通过XHR请求获取URL不变只换参数想拿到完整未经截断的原始数据普通页面抓取就够的场景数据直接写在HTML里服务端渲染只需要静态文本内容拼多多店群自动化上架方案怎么做方法1监听网络响应最常用启动浏览器时开启网络监听捕获特定URL的响应数据。【影刀操作】新建流程「拦截Ajax数据」添加【Python】指令先要找到目标请求URL# 思路先用浏览器开发者工具F12→Network# 过滤XHR/Fetch类型的请求# 找到包含目标数据的那个请求URL# 记录下URL和请求参数print(请先用开发者工具分析目标网站的网络请求)添加【打开网页】指令URLhttps://目标网站.com开启请求监听是添加【Python】指令Playwright方式拦截importjson captured_data[]# 监听响应事件defhandle_response(response):# 只处理包含目标数据的接口ifapi/product/listinresponse.url:try:dataresponse.json()captured_data.append(data)print(f捕获到数据{len(data.get(data, {}).get(list, []))} 条)except:passpage.on(response,handle_response)# 触发页面操作让Ajax请求发出去page.goto(https://目标网站.com/products)page.wait_for_load_state(networkidle)# 取消监听page.remove_listener(response,handle_response)# 保存到变量yda.set_variable(raw_data,json.dumps(captured_data,ensure_asciiFalse))print(f共捕获{len(captured_data)}次响应)方法2直接重放API请求分析到目标接口后不通过浏览器直接用Python发HTTP请求效率更高。【影刀操作】添加【Python】指令importrequestsimportjson# 从浏览器开发者工具里复制的请求头右键请求→Copy as cURL→转换成Pythonheaders{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36,Referer:https://目标网站.com/products,Cookie:your_session_cookie_here,X-Requested-With:XMLHttpRequest}all_data[]page_num1whileTrue:params{page:page_num,pageSize:20,category:electronics}resprequests.get(https://目标网站.com/api/product/list,headersheaders,paramsparams,timeout10)resultresp.json()itemsresult.get(data,{}).get(list,[])ifnotitems:breakall_data.extend(items)print(f第{page_num}页获取{len(items)}条累计{len(all_data)}条)page_num1# 判断是否还有下一页total_pagesresult.get(data,{}).get(totalPages,1)ifpage_numtotal_pages:breakyda.set_variable(product_list,json.dumps(all_data,ensure_asciiFalse))print(f采集完成共{len(all_data)}条数据)方法3拦截并修改请求高级用法不只是监听还能修改请求参数或响应内容。【影刀操作】# 拦截请求并修改参数defhandle_route(route):requestroute.requestifapi/searchinrequest.url:# 修改请求去掉某个限制参数new_headersdict(request.headers)new_headers[X-Page-Size]100# 强制每页100条route.continue_(headersnew_headers)else:route.continue_()page.route(**/*,handle_route)page.goto(https://目标网站.com/search?keywordtest)有什么坑坑1接口有签名校验很多电商网站的接口带有sign参数是时间戳密钥的MD5直接重放会报签名错误。分析思路TEMU店群如何管理运营在Network里找到请求看sign参数的规律搜索页面JS源码里sign的生成逻辑全局搜索sign 用Python复现签名逻辑坑2接口需要登录态才能访问没带登录Cookie接口返回401或者空数据。解决方法参考Cookie管理那篇先登录获取Cookie在请求头里带上Cookie。坑3数据量太大响应超时一次性请求几千条服务器超时或者返回错误。解决方法分页请求每页不超过50条在请求间加0.5-1秒随机延时。坑4动态加密的接口参数有些接口的参数经过加密Base64或者AES加密直接看不出规律。解决方法这类接口用Selenium/Playwright直接操作浏览器更省事别死磕接口逆向。总结网络请求拦截能拿到比HTML解析干净得多的结构化数据。核心流程开发者工具分析接口 → 找到目标请求URL和参数 → 用Python直接重放 → 处理分页和异常。掌握这个技能80%的动态网站数据采集问题都能解决。
RELATED

相关推荐

THUSC2019信息学竞赛备战与实战经验分享

THUSC2019信息学竞赛备战与实战经验分享

1. 比赛背景与个人准备THUSC2019是清华大学计算机系主办的一场面向高中生的信息学竞赛,全称"清华大学中学生信息学夏令营"。作为OI(信息学奥林匹克)圈内的重要赛事,它既是选拔优秀选手的渠道,也是普通选手积…

📅 2026/8/22 21:57:19
网络基础核心技术笔记(IP、端口、套接字、TCP、UDP)

网络基础核心技术笔记(IP、端口、套接字、TCP、UDP)

前言 计算机网络通信的本质,是不同设备之间的数据传输。想要完成一次正常的数据交互,必须解决三个核心问题:定位设备、定位程序、规定传输规则。对应网络核心概念即为:IP 地址、端口号、传输协议。而套接字是最终实现数据收发的技…

📅 2026/9/10 2:37:17
KVM虚拟化技术实战:从部署到性能优化

KVM虚拟化技术实战:从部署到性能优化

1. KVM虚拟化技术概述KVM(Kernel-based Virtual Machine)作为Linux内核原生支持的虚拟化解决方案,已经成为企业级虚拟化部署的首选。与传统的Type-2虚拟化方案(如VMware Workstation)不同,KVM属于Type-1 hy…

📅 2026/8/22 21:57:19
MORE NEWS

更多资讯

📰

Cilium Gateway API 外部鉴权实战:用 ExternalAuth 过滤器把 HTTP/gRPC 鉴权下沉到独立 Auth Service

Cilium Gateway API 外部鉴权实战:用 ExternalAuth 过滤器把 HTTP/gRPC 鉴权下沉到独立 Auth Service 【免费下载链接】cilium eBPF-based Networking, Security, and Observability 项目地址: https://gitcode.com/GitHub_Trending/ci/cilium 导读 本文基于…

📰

pnpm 12 Rust内核实测:安装提速35%,Monorepo迁移指南与踩坑

最近 pnpm 12 把一部分核心链路换成了 Rust 内核实现,作为一个天天跟 monorepo 和构建速度较劲的前端工程化玩家,我肯定不能只看 release notes 就完事。直接拿手头一个中型项目做了一轮完整实测,结论是:在安装依赖、lockfile 解析…

📰

Nightingale 订阅规则 HTTP API 实战指南:面向外部 A2A Agent 与 curl 调用的完整接口手册

Nightingale 订阅规则 HTTP API 实战指南:面向外部 A2A Agent 与 curl 调用的完整接口手册 【免费下载链接】nightingale Nightingale is to monitoring and alerting what Grafana is to visualization. 项目地址: https://gitcode.com/GitHub_Trending/ni/night…

📰

Rust编写的嵌入式烧录与串口调试一体化工具

1. 这不是又一个串口助手——它是一把嵌入式开发的“瑞士军刀” 我第一次在 GitHub 上看到 damo_link 的 README 时,心里是有点怀疑的:Rust 写的烧录工具?还带串口调试?这年头连 STM32CubeProgrammer 都开始用 Qt 做界面了&#…

📰

Milkdown 插件驱动的 Markdown 编辑器:3 步接入,5 行代码跑通

Milkdown 插件驱动的 Markdown 编辑器:3 步接入,5 行代码跑通 【免费下载链接】milkdown 🍼 Plugin driven WYSIWYG markdown editor framework. 项目地址: https://gitcode.com/GitHub_Trending/mi/milkdown Milkdown 是一款插件驱动…

📰

数字职业转型指南:技术路径与核心能力解析

1. 数字职业浪潮下的新机遇最近两年有个明显的趋势:越来越多的传统岗位正在被数字化重构。我身边至少有三位做财务的朋友转型成了财务系统顾问,两位教师朋友开始做在线课程开发。这种变化不是偶然,而是新经济形态下的必然选择。数字职业&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬