影刀RPA文本数据提取方法二:JSON解析提取
作者:林焱 | 适合人群:需要解析接口返回数据或网页隐藏JSON的新手
什么情况用什么
打开Chrome开发者工具Network面板,你会发现:很多网页的数据是通过Ajax接口返回的JSON,而不是写在HTML里。
比如抖音用户作品、淘宝商品详情、小红书笔记内容——这些数据都在JSON里,直接从HTML提取很麻烦,但解析JSON只需几步。
什么情况用JSON解析:
- 网页是前后端分离的,数据通过API加载
- 你要的数据在Network请求的返回里
- 网页源码里有
<script>标签包含JSON数据 - 批量采集,对速度有要求
怎么做
第一步:找到数据所在的接口
- Chrome打开目标网页,F12 → Network面板
- 筛选
XHR或Fetch请求 - 逐个查看响应,找到包含你要数据的那个请求
- 复制这个请求的URL和Headers(后面要用)
第二步:在影刀里发送HTTP请求拿到JSON
用「发送HTTP请求」指令:
- 请求方式:GET(通常是GET,少数是POST)
- URL:填刚才复制的接口地址
- Headers:填
Cookie、User-Agent等(从Chrome里复制)
店群矩阵自动化突破运营极限!
- 返回结果:保存到变量
response_json
第三步:解析JSON数据
影刀里用「JSON解析」指令:
接口返回:
{"aweme_list":[{"aweme_id":"123","desc":"标题A","statistics":{"digg_count":1000}}]}解析步骤:
- 「JSON解析」→ 解析
response_json,保存到data_obj - 「获取JSON值」→
data_obj["aweme_list"],保存到list - 「ForEach」循环
list,每次取一个作品对象 - 「获取JSON值」→
item["desc"]提取标题 - 「获取JSON值」→
item["statistics"]["digg_count"]提取点赞数
实战案例:采集知乎问题下的前20个回答
知乎的回答数据接口:
GET https://www.zhihu.com/api/v4/questions/{question_id}/answers?limit=20返回的JSON结构:
{"data":[{"author":{"name":"用户A"},"content":"回答内容...","voteup_count":1234}]}影刀流程:
- 「发送HTTP请求」→ 请求上述接口,拿到
response - 「JSON解析」→ 解析
response,存到json_obj - 「获取JSON值」→
json_obj["data"],存到answers - 「ForEach」循环
answers:- 提取
item["author"]["name"]→ 作者 - 提取
item["content"]→ 内容(需要处理HTML标签) - 提取
item["voteup_count"]→ 点赞数 - 写入Excel
- 提取
有什么坑
坑1:接口需要登录才能访问
很多网站的API需要登录态(Cookie)。直接发请求会返回401或403。
解决方案:
- 在Chrome里登录账号
- F12 → Application → Cookies,复制目标网站的Cookie
- 在影刀的HTTP请求Headers里加上
Cookie: xxx
坑2:接口有反爬,请求频率过高会封IP
解决方案:
- 每次请求后加「等待」2-5秒
- 在HTTP请求Header里加上真实的
User-Agent - 如果需要大规模采集,用代理IP
坑3:JSON结构嵌套很深,一层层取很麻烦
比如data["a"]["b"]["c"]["d"],写起来很长。
解决方案:影刀支持用路径表达式一次性取深层值:
temu店群自动化报活动案例
获取JSON值:data["a.b.c.d"] ← 有些版本支持用.连接如果不支持,只能一层层取。
坑4:接口返回的是HTML而不是JSON
有些网站的接口看起来像API,但其实返回的是HTML片段。
解决方案:先检查HTTP响应的Content-Type头。如果是text/html,说明返回的是HTML,需要用元素捕获或正则提取,不能用JSON解析。
坑5:POST接口的参数构造很复杂
有些接口是POST,需要构造复杂的请求体(Body)。
解决方案:
- 在Chrome的Network面板里,找到该请求的
Payload或Request Body - 复制完整的JSON体
- 在影刀的HTTP请求里,选
Body类型=JSON,粘贴刚才复制的内容(注意把动态参数换成变量)
总结
JSON解析提取的核心:绕过HTML,直接拿数据接口。
三步:找接口 → 发请求 → 解析JSON。比从HTML里一个个提取快10倍。
下一篇讲文本数据提取方法三:指令提取,用影刀内置指令做文本处理,适合不会正则也不会JSON解析的新手。
作者:林焱