当前位置: 代码迷 >> CGI >> 网页链接的结构
  详细解决方案

网页链接的结构

热度:855   发布时间:2014-02-27 01:51:55.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:

#!/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";

执行结果:
$ ./t.pl
http://www.a.com/b/f.html
  相关解决方案