首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CGI >

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

2012-02-03 
网页链接的构造我用perl写了一个抓取网页信息的 程序,现在可以获得网页的源代码,可是却在获取url地址的地

网页链接的构造
我用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"; 

热点排行