我想编写一个 Perl 脚本来获取网页的 html 内容,然后抓取表格的内容。确切的页面是:
http://djbpmstudio.com/Default.aspx?Page=album&id=1
到目前为止,我可以使用以下代码对艺术家、专辑和流派以及表中的第一个条目进行正则表达式:
use LWP::Simple;
$url = "http://djbpmstudio.com/Default.aspx?Page=album&id=1";
my $mystring = get($url) or die "Error fetching source page.";
$mystring =~ s/[\r\n]/ /g; #remove line breaks from HTML
$mystring =~ s/(>)\s+(<)/$1$2/g; #Remove white space between html tags
#print $mystring;
if($mystring =~ m{</table><h1>(.*?) - (.*?) - (.*?)</h1>}) {
#Get Artist name and print
print "Artist: $1\n";
print "Album: $2\n";
print "Genre: $3\n\n";
if($mystring =~ m{</tr><tr class="row-(.*?)"><td>(.*?)</td><td align="right">(.*?)</td></tr>}) {
#Get Songname and BPM and print
#print "$1\t";
print "$2\t";
print "$3\n";
}
}
在嵌套 IF 中,类在“row-a”和“row-b”之间交替。
我不确定如何从列表中获取所有歌曲名称和每首歌曲的 BPM。我还想将歌曲名和 BPM 放入一个数组中以供以后处理。
谢谢你。