如何从JSON对象属性提取URL?Frontendmasters API视频URL导出至TXT
刚好处理过类似的需求,我来分两部分给你讲清楚:
1. 通用场景:从JSON对象属性中提取URL
核心逻辑其实很简单,不管你用什么编程语言,都绕不开这几步:
- 把JSON字符串解析成程序能操作的对象(如果还没解析的话)
- 定位到存储URL的目标属性路径
- 提取对应的值,如果是多个URL的话就遍历处理
给你两个常用语言的示例:
JavaScript 示例
假设你已经拿到了JSON字符串,解析后提取:
// 假设jsonString是你获取到的JSON格式字符串 const jsonObj = JSON.parse(jsonString); // 直接通过属性链提取URL const videoUrl = jsonObj.lessondata.sourcebase; console.log(videoUrl); // 输出目标URL // 如果sourcebase是数组(比如多段视频) const videoUrls = jsonObj.lessondata.sourcebase; videoUrls.forEach(url => { console.log('视频URL:', url); });
Python 示例
用Python的标准json库处理:
import json # 模拟获取到的JSON字符串 json_content = ''' { "lessondata": { "sourcebase": "https://example.com/lesson-video.mp4" } } ''' # 解析JSON为字典 json_obj = json.loads(json_content) # 提取URL video_url = json_obj['lessondata']['sourcebase'] print(video_url)
2. Frontendmasters 课程API的具体提取方案
这个场景特殊在需要登录认证才能访问API,我给你一套可落地的Python脚本方案:
步骤1:获取登录凭证
先打开Frontendmasters官网登录你的账号,然后按F12打开浏览器开发者工具:
- 切换到「Network」标签页
- 找到返回课程JSON的API请求(一般是XHR/fetch类型)
- 查看请求头里的
Cookie字段,把整个Cookie内容复制下来(这是你的登录凭证) - 同时记下这个API的完整URL
步骤2:编写脚本提取并保存URL
先安装requests库(处理HTTP请求很方便):
pip install requests
然后用下面的脚本(记得替换成你的实际信息):
import json import requests # 替换成你找到的课程API地址 API_URL = "https://frontendmasters.com/api/course/your-course-id/lessons" # 替换成你从浏览器复制的Cookie HEADERS = { "Cookie": "your-login-cookie-content-here", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" } # 发送请求获取JSON数据 try: response = requests.get(API_URL, headers=HEADERS) response.raise_for_status() # 请求失败直接抛出错误 course_data = response.json() except Exception as e: print(f"请求API失败:{str(e)}") exit() # 提取所有sourcebase中的URL video_urls = [] # 注意:实际API返回的lessondata可能是数组(每个元素是单个课时) if isinstance(course_data.get("lessondata"), list): for lesson in course_data["lessondata"]: if "sourcebase" in lesson: video_urls.append(lesson["sourcebase"]) else: # 少数情况lessondata是单个对象 video_urls.append(course_data["lessondata"]["sourcebase"]) # 保存到TXT文件 with open("frontendmasters_video_urls.txt", "w", encoding="utf-8") as f: for url in video_urls: f.write(f"{url}\n") print(f"搞定!一共提取了{len(video_urls)}个视频URL,已经保存到frontendmasters_video_urls.txt里了")
注意事项
- 千万不要把你的Cookie分享给别人,这相当于你的登录凭证
- Frontendmasters的API结构可能会更新,如果脚本失效,记得重新去开发者工具看最新的JSON结构
- 不要频繁发送请求,避免触发网站的反爬限制
内容的提问来源于stack exchange,提问作者Ashik
相关产品推荐
相关产品推荐

