Perl:分析页面,提取下载链接和文件对应的名称。

系统:Windows

语言:Perl

工具:Notepad++/cmd

目前要用PERL来分析一下页面。然后组群下载文件然后更名。

首先,rar文件连接在二级文件里。rar文件的名称是数字,其对应的中文名称在一级页面上对应二级页面的连接。我看了Perl的Cookbook,里面建议用模块。但是我打算用正则表达式自己写一个脚本。这里只用了简单的LWP::Simple模块。

技术:这里使用了正则表达式的$1,$2...来提取一行中需要的段。(需要注意的是:$1,$2...的命名空间只是它们上一个带有()的正则表达式。最近一个带有()的正则表达式已经失效了。除非即时赋值给变量。)

#t.pl
# to split out index url and rar page.
use warnings;
use LWP::Simple;

sub getDownloadPage {

my @lines=split("\n", $_[0]);
my $line1="";
    foreach my $line(@lines) {

        if ($line=~/<li class="itm">[^<]*<span> *[0-9]{4}-[0-9]{2}-[0-9]{2} *<\/span>[^<]*<a href="([^"> ]*)" *>([^<]*)</) {
            print $1," ",$2,"\n";
        }
    }
}

my @indexes;
unshift @indexes, "http://www.yingyu.com/stxz/chuzhong/zhongkao/";
# get index page.
my $content=get($indexes[0]);
my @hrefs=split "href=\"", $content;
shift @hrefs;
foreach $href(@hrefs) {
    if($href=~/(http:\/\/.*index[_0-9]*\.shtml)" *>[0-9]+/) {
        push @indexes, $1;
    }
}
#page download page and its relative Chinese name.
foreach $index(@indexes) {
    $content=get($index);
    # my @pages=split "<li ", $content;
    # shift @pages;
    getDownloadPage($content);
    
}

 

转载于:https://www.cnblogs.com/zuiaishenlin/p/3960054.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值