Perl实现下载百度Top100歌曲

Perl实现下载百度Top100歌曲,第1张

概述自从遇见一位Perl大神,本人就对Perl 倾心已久, 想征服它,一直以来没那个勇气,但是从现在开始我要征服它,希望有一天能成长为他那样的级别。 挥手间,强弩灰飞烟灭。 从现在开始吧。。 下面是我的处女作. 用到的知识点都是最基本的, 高深的还不会,还要慢慢积累,有什么不足之处,还望各位大神指点指点小弟。 需求: 发现想自动化下载网络上的一些歌曲,不用人工下载。 实现: 用最简单的perl语法实现

自从遇见一位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); 总结

以上是内存溢出为你收集整理的Perl实现下载百度Top100歌曲全部内容,希望文章能够帮你解决Perl实现下载百度Top100歌曲所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1278173.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存