質問

I'd like to download all mp3s from the blog pinchy&friends. I tried the script

for mp3 in "http://www.pinchyandfriends.com/dl.php?mp3=*.mp3"; do
    wget "http://www.pinchyandfriends.com/dl.php?mp3=${mp3}.mp3"
    sleep 5
done

But all that results in is an attempt to download the literal http://www.pinchyandfriends.com/dl.php?mp3=*.mp3. Am I misunderstanding something about the script I wrote and/or is there a better way to do what I'm attempting? Thanks in advance.

役に立ちましたか?

解決

You can't do it this way, you're $mp3 variable is actually: "http://www.pinchyandfriends.com/dl.php?mp3=*.mp3"

You have to solve it this way:

for mp3 in "title1" "title2" "title3"; do
    wget "http://www.pinchyandfriends.com/dl.php?mp3=$mp3.mp3"
    sleep 5
done

You should think how to obtain the mp3 names first.

Edit: Here's Your solution.

 for album in $(wget -q -O- http://www.pinchyandfriends.com/ | egrep -o "/[0-9]+/[^/]+/"); do
     echo $album                                                                 
     dl_uri=$(wget -q -O- "http://www.pinchyandfriends.com$album" | egrep -o '/dl.php[^"]+')                                                                         
     wget "http://www.pinchyandfriends.com$dl_uri"  
 done

This script gets the list of albums from the main page, then goes to the album page to fetch the download uri, and then uses wget to actually get the mp3

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top