Como obter lista de URLs de um URL recursivamente com filtragem

1

Eu quero obter lista de URLs que contém vimeo.com de um site de forma recursiva por um comando, para que eu possa canalizá-lo para vimeo_downloader.sh .

Eu prefiro usar wget , mas também estou feliz com outras opções.

Exemplo

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" ...
...

Da mesma forma, 02.html to 06.html tem o URL do vimeo. Como obter todos os URLs vimeo de 01~06.html ?

    
por ironsand 01.06.2014 / 04:13

1 resposta

1

Você precisa obter a lista de URLs e depois analisar os links para alimentar o download. Como você está usando um programa externo para fazer o download, em vez de wget , você realmente não precisa das opções de download recursivo de wget s.

Assumindo que o GNU grep , que permite imprimir apenas o texto correspondente, você pode pegar os URLs vimeo com:

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

Em seguida, para alimentar isso no downloader

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
    
por 01.06.2014 / 09:28