Perl实现下载百度Top100歌曲
来源:互联网 发布:asp.net 防sql注入 编辑:程序博客网 时间:2024/04/27 22:05
自从遇见一位Perl大神,本人就对Perl 倾心已久, 想征服它,一直以来没那个勇气,但是从现在开始我要征服它,希望有一天能成长为他那样的级别。
挥手间,强弩灰飞烟灭。
从现在开始吧。。
下面是我的处女作.
用到的知识点都是最基本的, 高深的还不会,还要慢慢积累,有什么不足之处,还望各位大神指点指点小弟。
需求: 发现想自动化下载网络上的一些歌曲,不用人工下载。
实现: 用最简单的perl语法实现
说明: 最多限定了下载100首。
注意:
my $list_url = "http://music.baidu.com/top/new";
#http://music.baidu.com/top/dayhot
这个地址可以变更成自己想要的。
___________________________________________________________________
#!/usr/bin/perl
# Date: 2014.02.13# Author: arika
# Info: jinfei09@126.com
use strict;
use LWP::Simple;
use IO::File;
my $url_root = "http://music.baidu.com";
my $list_url = "http://music.baidu.com/top/new";
my $main_url_file = "urls.txt";
my $songItem = "songItem";
my $songDir = "song";
my $count = 0;
my $song_max = 100;
qx(mkdir -p $songItem $songDir);
sub get_song_url
{
(my $all_url_file, my $all_song_url)= @_;
open(IN, ">$all_url_file") or die "Can not open $all_url_file, because: $!";
print "Begin downloading $all_song_url\n";
print IN get($all_song_url);
close IN;
}
sub start_get_url
{
my $file = shift;
open(IN, "<$file") or die "Can not open $file,$!";
while(<IN>) {
if(/songItem/) {
$count++;
my $one_song = ($_=~m/song-item-hook { 'songItem':(.*)}/);
my $one_song_info = ($1 =~ m/{ 'sid': '(.*)', 'sname': '(.*)', 'author': '(.*)' }/);
my $song_name = "$2_$3.mp3";
my $song_url = "$url_root/song" . "/$1";
my $song_key_file = "songItem/$1";
my $song_local_path = "song/$song_name";
open(FILE, ">$song_key_file") or die "Can not open $song_key_file:$!";
print FILE get($song_url);
close FILE;
open(FILEHANDLE, "<$song_key_file") || die "Can not open $song_key_file: $!";
while(<FILEHANDLE>){
if(/data_url="(.*)"/){
open(FILESONG, ">$song_local_path") or die "Can not open $song_local_path:$!";
print ">>>>>>Begin download [$count][$song_name]\n";
print "URL[$count]: " . $1 . "\n";
print FILESONG get($1);
close FILESONG;
print "<<<<<<Success download\n\n";
}
}
close FILEHANDLE;
}
if($count eq $song_max) {last;}
}
close IN;
}
&get_song_url($main_url_file, $list_url);
&start_get_url($main_url_file);
qx(rm -rf $main_url_file $songItem);
0 0
- Perl实现下载百度Top100歌曲
- python 百度top100和top500歌曲下载
- 百度音乐接口下载歌曲
- 用百度MP3的API从网络下载歌曲的完整实现
- 通过Fildder下载百度音乐里的收费歌曲
- Python爬虫——百度+新浪微盘下载歌曲
- 从百度网页上下载歌曲,歌曲名称显示乱码
- 下载百度排行榜音乐的程序(Perl)
- python取百度歌曲
- 豆瓣电台加心歌曲自动下载(python实现)
- android mediaplayer 实现歌曲边播放边下载
- songtest 歌曲下载 器
- 【小强推歌】---法文歌曲下载
- 免费歌曲下载
- mv歌曲下载技巧
- 推荐好听歌曲下载
- 爬去百度音乐的歌曲,突破不能点播的限制,将其下载。
- Top100
- Android UI - 带白边的自定义ImageView效果
- 数据库回表
- jquery基本用法
- 使用ZenXML处理XML文档
- Tomcat启动的时候加载两次web.xml
- Perl实现下载百度Top100歌曲
- Unity ShaderLab 中的内置变量
- linux服务器之间建立信任关系
- 异步机制(Asynchronous) -- (一)开篇兼谈Mina
- hadoop程序问题:java.lang.IllegalArgumentException: Wrong FS: hdfs://.... expected file:///
- UML之类图
- 5年程序员悲催的生活
- serial echo program for Arduino V1.0 +
- Java中HttpURLConnection使用代理服务器