Script Bash para obter todos os arquivos mp3 de uma página html

1

Eu estava pensando em obter arquivos .mp3 de uma página html, manualmente eu usei wget

wget http://www.podcastfrancaisfacile.com/wp-content/uploads/files/question-prix.mp3

Então, eu tento isso para uma maneira automática de obter todos os arquivos mp3

grep -i -E -o "content="http://www.podcastfrancaisfacile.com/wp-content/uploads/files/*.mp3" "$thread" | sed 's/ /_/g' - > "$names"

onde " $thread " é o nome do arquivo html, " $names " é a lista de nomes de arquivos como saída.

e

sed -ne 's/.*\(http[^"]*\).*//p' < "$thread"

relacionado

Script Bash para extrair algumas informações do Páginas HTML do Ebay

Como posso usar o awk para extrair URLs de um arquivo HTML?

bash - extrai nomes de arquivos do arquivo html contendo múltiplos links

    
por Darleison Rodrigues 15.04.2016 / 16:35

2 respostas

1

O script a seguir fará o download de cada link .mp3 no arquivo HTML ou URL contido na variável $thread . Ele faz uso de lynx -dump -listonly , que é uma das formas mais fáceis e convenientes para um script de shell extrair uma lista de URLs de um arquivo HTML ou URL.

O script exige que você saiba o URL da página de índice que lista os arquivos .mp3 . Ou o nome do arquivo contendo uma cópia já baixada dessa página.

Você não mencionou qual era o URL do índice, por isso usei o falso http://www.podcastfrancaisfacile.com/mp3-list.html como exemplo. Substitua pelo URL ou nome de arquivo correto.

#! /bin/bash

thread='http://www.podcastfrancaisfacile.com/mp3-list.html'
#thread='mp3-list.html'

while IFS= read -r url ; do
  wget "$url"
done < <(lynx -dump -listonly "$thread" | awk '/\.mp3$/ {print $2}')
    
por 16.04.2016 / 05:30
0

Você pode usar as opções de recuperação recursiva de wget . Por exemplo:

$ wget \
    -e robots=off \
    --accept '*.mp3' \
    --level=1 \
    --recursive \
    --no-directories \
    "${thread}"
    
por 16.04.2016 / 11:52

Tags