日期:2014-05-17  浏览次数:20950 次

如何补全链接地址
今天做了个抓页面内容的程序

但有个链接不全问题,不知道该如何写正则去替换成完整链接,求助,

比如从http://www.xxx.com/tmp/job/bbc.asp抓到的内容有
<link href="/assets/aaa.css" media="screen" rel="stylesheet" type="text/css" />
<script src="../bss/bbb.js" type="text/javascript"></script>
<img src="../../img/ccc.jpg">
<a href="ddd.asp">title</a>
替换成
<link href="http://www.xxx.com/assets/aaa.css" media="screen" rel="stylesheet" type="text/css" />
<script src="http://www.xxx.com/tmp/bss/bbb.js" type="text/javascript"></script>
<img src="http://www.xxx.com/img/ccc.jpg">
<a href="http://www.xxx.com/tmp/job/ddd.asp">title</a>


------解决方案--------------------
分别replace就行。
------解决方案--------------------
没有楼主想像那么费劲。

其实只有两种情况:
1。/打头的,代表网站根目录,即域名部分,从你的采集URL里很容易截取网站域名,加上就行。

2。非/打头的,代表相对目录,只要把你采集页面所在的目录层级加到它前面就行了。对于“aa/a.htm”这样的下级目录自然没问题,对于“../../a/a.htm”这样的也一样没问题,..代表向上一级,这是通用规则,不需要转换,无论在哪都自然可以识别。