做了个网页资源采集器,现在已能获得要采集的页面源码,但是图片等链接不可得,因为图片链接基本是相对路径,要改为绝对路径才可使用,有网上介绍使用<base>,这个方法对一个页面上同时有如src="k/band/1.gif",src="/k/band/1.gif"之类的行不通。<base>不可能同时使用网站根目录和网页当前路径。
有高人指点一下。

解决方案 »

  1.   

    最理想的是使用 <base ...>如果行不通,可以部分解析为绝对路径(以协议打头的,比如:http://)完整的解析你需要:
    一、解析出网页的标准路径:到url最后的一个路径分隔符 “/”二、根据标准路径,解析替换所有的资源链接(href,src)
    1、协议开头的,不需要处理
    2、“/”开头的,在前面加上根路径
    3、“../”开头的,替换为父路径
    4、“./”开头的,替换为标准路径
    5、其它情形(相对路径),在前面加上标准路径
      

  2.   

    采集到代码后,在src="后面补权全路径 在保存下来,比如 src="http://www.sina.com/k/band/1.gif"
      

  3.   

    有时会遇到这样的地址:http://blog.csdn.net/windflow,情况复杂啊