標籤:style blog http color 使用 ar for 檔案 div
系統:Windows
語言:Perl
工具:Notepad++/cmd
目前要用PERL來分析一下頁面。然後組群下載檔案然後更名。
首先,rar檔案串連在二級檔案裡。rar檔案的名稱是數字,其對應的中文名稱在一級頁面上對應二級頁面的串連。我看了Perl的Cookbook,裡面建議用模組。但是我打算用Regex自己寫一個指令碼。這裡只用了簡單的LWP::Simple模組。
技術:這裡使用了Regex的$1,$2...來提取一行中需要的段。(需要注意的是:$1,$2...的命名空間只是它們上一個帶有()的Regex。最近一個帶有()的Regex已經失效了。除非即時賦值給變數。)
#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); }
Perl:分析頁面,提取下載連結和檔案對應的名稱。