当前位置: 代码迷 >> CGI >> 网页链接的构造,该如何解决
  详细解决方案

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

热度:655   发布时间:2012-02-03 22:02:47.0
网页链接的构造
我用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/perl

use URI;

my $uri = URI->new_abs("../d/../e/../f.html", "http://www.a.com/b/c/");
print $uri->as_string, "\n"; 
  相关解决方案