
现有一个 json 文件,希望下载其中所有的 “ url ” 的文件:
http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json
如何在 Linux 上批量下载呢?使用 wget 一个个复制粘贴效率太低了。
1 hanxiV2EX 2018-08-29 14:40:57 +08:00 via Android 解析 json,对每个 url 执行 wget 命令 |
2 exkernel 2018-08-29 14:41:08 +08:00 sed 一下就出来了, 不会的话用[jq]( https://stedolan.github.io/jq/) |
3 omph 2018-08-29 14:42:41 +08:00 优雅一点的,用程序解析 json 中的 url,然后下载 暴力点的,正则出 url |
4 fireapp 2018-08-29 14:57:02 +08:00 via iPhone sed | awk | wget 搞定 |
5 JHerschel 2018-08-29 15:32:13 +08:00 import json file = open('pathToFile') file_to_json = json.load(file) for a in file_to_json: for b in a['assets']: print(b['url']) wget 或者 requests 搞定。 |
6 zerofiny 2018-08-29 15:32:39 +08:00 ``` curl http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json | grep url | sed -e 's/"url"\ ://;s/\,//g' | awk '{print "curl -L -O "$1}' | sh ``` |
8 ps1aniuge 2018-08-30 10:56:14 +08:00 win linux 通用 powershell: |
9 ps1aniuge 2018-08-30 10:58:17 +08:00 $a = Invoke-RestMethod http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json |ConvertFrom-Json $a.assets.url 和楼上的道理一样。只不过这个网址现在好像,啥命令都不行了,502 Bad Gateway 了。 |
11 ps1aniuge 2018-09-01 17:19:07 +08:00 $url = 'http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json' $a = Invoke-RestMethod -Uri $url $a.assets.url 测试通过 我不知道网址内容是否变了,反正现在不需要搞 json 了。 |
12 iwtbauh 2018-09-05 08:21:35 +08:00 via Android jshon 了解一下 #!/bin/bash url=`jshon -e xxxx -e url1 -u` curl -s ... |
13 abcbc 2018-09-23 23:50:10 +08:00 用 jq 来处理很简单: curl -L http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json | jq -r '.[].assets | .[].url' | xargs -I {} curl -LO {} |