当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 再来一个灰常简单的mp3下载脚本(7.31更新)
帖子发表于 : 2008-06-24 20:31 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
RT
知道大家对这种东西都腻了,不看也欢迎灌水 :D
如下:
需要w3m,用法输入h自己看~~~~~~~~

=================7.31=================
百度更改了其下载页面代码,故老版不能下载了,今天更新。

=====================================
代码:
#!/bin/bash
#----------------------------------------#
#        coded by xiooli                 #
#                        have fun :)     #
#----------------------------------------#
save_dir=~/music    #保存歌曲的目录,自己改
max_num=20       #每次最多显示多少条歌曲信息(<=30)
>/tmp/music_info
[ ! -d $save_dir ] && mkdir $save_dir

#获取源页面,并用w3m格式后输出。
get_src() {
   if [ `locale |grep "LANG=.*UTF-8"` ];then
      gb=`echo "$key_word" | iconv -c -f utf-8 -t gbk | od -t x1 -A n |tr "\n" " " |tr " " % |sed 's/%%/%/g;s/%0a%$//'`
   else
      gb=`echo "$key_word" | od -t x1 -A n |tr "\n" " " |tr " " % |sed 's/%%/%/g;s/%0a%$//'`
   fi
   wget "http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word="$gb"&lm=-1" -O /tmp/tmp_src.htm -q
   w3m -dump "/tmp/tmp_src.htm" |grep -m $max_num "^[0-9]" |sed 's/\[d9\]//' |tee /tmp/music_info
}
#下载音乐。
down_music() {
   music_page_url=`cat "/tmp/tmp_src.htm" |grep -A5 "<td class=tdn>"$num"</td>" | grep "onclick=\"return ot" |awk -F"\"" '{print $2}'`
   w3m -dump_source -no-cookie "$music_page_url" >/tmp/link_src.htm
   music_url=`w3m -dump /tmp/link_src.htm |grep "embed" |sed 's/^.*(//;s/).*$//'`
   ext=`cat /tmp/music_info |grep -w "^$num" |awk '{print $NF}'`
   if [ ! -f "$save_dir/$nm.$ext" ];then
      axel -n 20 "$music_url" -o "$save_dir/$nm.$ext"
      [ -e "$save_dir/$nm.$ext" ] && mid3iconv -e gbk "$save_dir/$nm.$ext"
      clear && cat /tmp/music_info
   else
      echo "已存在同名文件:$save_dir/$nm.$ext"
   fi
}
#****************main******************
while true;do
   read -p "请输入命令:" cmd
   case $cmd in
   s*)
      key_word="`echo $cmd |sed 's/^s//'`"
      get_src
      ;;
   d*)   
      num="`echo $cmd |sed 's/^d//'`"
      nm_tmp=`cat /tmp/music_info |grep -w "^$num"`
      nm=`echo $nm_tmp |awk '{print $2"-"$3}'` #歌曲以 标题-艺人.扩展名 的格式重命名,在此可以改。
      down_music
      ;;
   q)
      exit 0
      ;;
   h)
      echo "       s+关键词:搜索歌曲;d+序号:下载该歌曲;h:显示本帮助信息;q:退出。"
      ;;
   *)
      echo "不知所云~~~~"
      ;;
   esac
done


附件:
down_music.tar.gz [1.25 KiB]
被下载 337 次


最后由 xiooli 编辑于 2008-07-31 22:15,总共编辑了 1 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-06-24 20:35 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
很强大啊,哈哈


_________________
关注我的blog: ε==3


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-06-24 21:19 
头像

注册: 2006-09-10 22:36
帖子: 10663
地址: 北京
送出感谢: 1
接收感谢: 16
不错~~~


_________________
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-06-24 21:33 
头像

注册: 2007-04-25 13:12
帖子: 2838
送出感谢: 0 次
接收感谢: 0 次
好玩 :D


_________________
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-07-31 20:05 

注册: 2007-05-06 0:53
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
我用这个下歌曲的时候,显示
Initializing download: true
然后就停在那里不动了,该怎么解决?
谢谢


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-07-31 20:49 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
iconv -c -f utf-8 -t gbk
看着都难受的。这世界。


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-07-31 21:39 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
holddreams 写道:
我用这个下歌曲的时候,显示
Initializing download: true
然后就停在那里不动了,该怎么解决?
谢谢
下不了,因为百度改东西了,你自己看看改下吧,脚本很简单的。


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-07-31 22:16 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
holddreams 写道:
我用这个下歌曲的时候,显示
Initializing download: true
然后就停在那里不动了,该怎么解决?
谢谢
更新了,你再试试看?


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-08-01 19:49 

注册: 2007-05-06 0:53
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
xiooli 写道:
holddreams 写道:
我用这个下歌曲的时候,显示
Initializing download: true
然后就停在那里不动了,该怎么解决?
谢谢
更新了,你再试试看?


可以了,多谢!


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-08-15 18:59 
头像

注册: 2008-05-15 13:16
帖子: 252
送出感谢: 0 次
接收感谢: 0 次
问题是在 怎么弄? axel是什么 ?


附件:
123.png
123.png [ 287.4 KiB | 被浏览 1938 次 ]

页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-08-15 19:07 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
后之后觉 写道:
问题是在 怎么弄? axel是什么 ?
ls,axel 是一个多线程的命令行下载软件,你也可以把下载的软件换成 wget,把这行:axel -n 20 "$music_url" -o "$save_dir/$nm.$ext" 改成:
wget "$music_url" -O "$save_dir/$nm.$ext" 就行了。

ps:使用的时候命令里面不必用+号,比如我要下载第2首歌直接输入:d2就好,不必d+2


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-08-15 19:20 
头像

注册: 2008-05-15 13:16
帖子: 252
送出感谢: 0 次
接收感谢: 0 次
xiooli 写道:
后之后觉 写道:
问题是在 怎么弄? axel是什么 ?
ls,axel 是一个多线程的命令行下载软件,你也可以把下载的软件换成 wget,把这行:axel -n 20 "$music_url" -o "$save_dir/$nm.$ext" 改成:
wget "$music_url" -O "$save_dir/$nm.$ext" 就行了。

ps:使用的时候命令里面不必用+号,比如我要下载第2首歌直接输入:d2就好,不必d+2

thank you 我安装了axel


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-08-15 22:45 
头像

注册: 2008-05-15 13:16
帖子: 252
送出感谢: 0 次
接收感谢: 0 次
代码:
请输入命令:d3
Updating /home/***/music/爱情转移爱情呼叫转移-陈奕迅.mp3
No ID3 header found; skipping...

出错信息 现象是 下载的mp3在/home/***里 music目录里有一个几K的文件
是改名的问题?
代码:
wget "$music_url" -o "$save_dir/$nm.$ext"
   [ -e "$save_dir/$nm.$ext" ] && mid3iconv -e gbk "$save_dir/$nm.$ext"
   clear && cat /tmp/music_info

我不是很懂,问题是不是在这里?


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-08-15 23:13 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
后之后觉 写道:
代码:
请输入命令:d3
Updating /home/***/music/爱情转移爱情呼叫转移-陈奕迅.mp3
No ID3 header found; skipping...

出错信息 现象是 下载的mp3在/home/***里 music目录里有一个几K的文件
是改名的问题?
代码:
wget "$music_url" -o "$save_dir/$nm.$ext"
   [ -e "$save_dir/$nm.$ext" ] && mid3iconv -e gbk "$save_dir/$nm.$ext"
   clear && cat /tmp/music_info

我不是很懂,问题是不是在这里?
我这个获取mp3真事地址用了一个很取巧的方法(取的是试听地址),所以可能不是所有的都能弄下来,几百k的大概是把网页下载下来了。

你要正规的方法可以去http://forum.ubuntu.org.cn/viewtopic.php?t=142965&highlight=看看,里面有最新的解析百度加密地址的方法


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译