如何通过过滤递归地从 URL 获取 url 列表

如何通过过滤递归地从 URL 获取 url 列表

我想获取包含以下内容的 URL 列表vimeo.com通过命令递归地获取包含网站的 URL 列表,以便我可以将其通过管道传输到vimeo_downloader.sh

我更喜欢使用wget,但我也对其他选项感到满意。

例子

index.html

<a href="01.html">01</a>
<a href="02.html">02</a>
<a href="03.html">03</a>
<a href="04.html">04</a>
<a href="05.html">05</a>
<a href="06.html">06</a>

01.html

...
... src="//player.vimeo.com/video/xxxxxxxxxx?api=1" ...
...

同样02.html06.html一个 vimeo 的 URL。如何获取所有 vimeo URL 01~06.html

答案1

您需要获取 URL 列表,然后解析出要提供下载的链接。由于您使用外部程序进行下载,而不是wget真正需要wget递归下载选项。

假设 GNUgrep允许您仅打印匹配的文本,您可以使用以下命令获取 vimeo url:

wget -q -O - -i urllist.txt | grep -oi "http://vimeo.com/[0-9]\+"

然后将其输入下载器

urls=$(wget -q -O - -i urllist.txt | grep -oi "http://vimeo.com/[0-9]\+")
for url in $urls; do
  echo "Downloading [$url]"
  vimeo_downloader.sh "$url"
done

相关内容