读书人

网页链接的构造,该如何解决

发布时间: 2012-02-03 22:02:47 作者: rapoo

网页链接的构造
我用perl写了一个抓取网页信息的 程序,现在可以获得网页的源代码,可是却在获取url地址的地方遇到了难题,
我用正则把所有url都取出来了,去不知道怎么样来构造成完整的地址,网页上的链接方式太多了,比如“  ./index.php”,"../index.php",
有没有人做过类似蜘蛛的程序,里面的url是怎么构造?
我的代码:
sub getUrl{
my $geturlinfo = shift;
my $expurl="";
my @returnurl=();
use LWP::Simple qw(get);
my $contents = get($geturlinfo);
while($contents=~ m/<a(.*?)href=(\"|\')(.*?)(\"|\')(.*?)>(.*?)<\/a>/g){
local $exp_url=$3;
if($exp_url=~/(script|mailto:)/){

}elsif($exp_url=~/http:\/\//){
$expurl=$exp_url;
} elsif(substr($exp_url,0,1) eq "/"){
$expurl="$geturlinfo$exp_url";
}else{
$expurl="$geturlinfo/$exp_url";
}

push @returnurl,$expurl;
}

return @returnurl;
}

[解决办法]
用URI:

Perl code
#!/usr/bin/perluse URI;my $uri = URI->new_abs("../d/../e/../f.html", "http://www.a.com/b/c/");print $uri->as_string, "\n"; 

读书人网 >CGI

热点推荐