如何过滤URL请求输出,提取720p视频链接?
提取Aparat视频的720p链接
你当前用grep "720p"只能筛选出包含720p的整行,但无法精准提取目标链接——因为接口返回的是JSON格式数据,直接用文本匹配工具会带出冗余内容。以下是两种可行的解决方案:
方法一:使用jq(推荐)
jq是专门处理JSON数据的工具,解析效率和准确性远高于普通文本匹配。先确保系统已安装jq(Debian/Ubuntu用apt install jq,CentOS/RHEL用yum install jq,macOS用brew install jq),然后执行命令:
curl https://www.aparat.com/video/video/embed/videohash/lXhkG/vt/frame -H "Accept: application/json" -s | jq -r '.multi[] | select(.quality == "720p") | .url'
命令说明:
.multi[]:遍历返回JSON中的multi数组(视频清晰度集合)select(.quality == "720p"):筛选出quality字段为720p的数组元素.url:提取该元素对应的视频链接字段-r:输出原始字符串(去除JSON字符串的引号包裹)
执行后会直接输出干净的720p视频链接,无需额外处理转义字符。
方法二:用grep+sed(无jq时备用)
如果暂时无法安装jq,可以用文本处理工具组合提取:
curl https://www.aparat.com/video/video/embed/videohash/lXhkG/vt/frame -H "Accept: application/json" -s | grep -o '"url":"[^"]*720p[^"]*"' | sed 's/"url":"\(.*\)"/\1/' | sed 's/\\\///g'
命令说明:
grep -o '"url":"[^"]*720p[^"]*"':精准匹配包含720p的url键值对- 第一个
sed:提取引号内的链接内容 - 第二个
sed:把链接中的转义符\/替换为正常的/
内容的提问来源于stack exchange,提问作者Reza Shakak
相关产品推荐
相关产品推荐

