代码之家  ›  专栏  ›  技术社区  ›  ha22109

如何在wget中将相对url改为绝对url

  •  1
  • ha22109  · 技术社区  · 16 年前

    我正在编写一个shell脚本来下载和显示站点中的内容,并将此内容保存到本地文件系统中。

    我在脚本中使用了以下命令来获取内容:

    /usr/sfw/bin/wget -q -p  -nH -np --referer=$INFO_REF --timeout=300 -P $TMPDIR $INFO_URL
    

    哪里 INFO_REF 是我需要显示内容的页面 INFO_URL

    问题是,我可以将内容(images/css)作为html页面获取,但是在这个html中,指向不同站点的图像和标题上的链接不起作用,url的路径(图像链接)正在更改为本地文件系统路径。

    我试着加上 -k wget中的选项,使用此选项,这些url指向正确的位置,但现在图像路径从相对位置更改为绝对位置,因此图像不会出现。没有 -K 图像显示正常。

    请告诉我可以使用什么选项,以便图片和页面中的链接都能正确显示。我是否需要使用两个独立的wget命令,一个用于图像,另一个用于页面中的链接?

    1 回复  |  直到 14 年前
        1
  •  2
  •   David Costa    15 年前

    根据WGET手册:

    实际上,下载一个页面 所有的必需品(即使 存在于不同的网站上),并使 确保该批次显示正确 在本地,作者喜欢使用 除了-p之外,几乎没有其他选项:

    工作组-E-H-K-K-P http://site/document

    为了适应您的需要:

    /usr/sfw/bin/wget -q -E -H -k -K -p -nH --referer=$INFO_REF --timeout=300 -P $TMPDIR $INFO_URL
    

    我删除了-np,因为我认为它是错误的(可能页面依赖项在父目录中)。