首页 > 代码库 > Perl:分析页面,提取下载链接和文件对应的名称。
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=http://www.mamicode.com/"([^"> ]*)" *>([^<]*)</) { 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=http://www.mamicode.com/"", $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); }
Perl:分析页面,提取下载链接和文件对应的名称。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。