当我尝试右键单击并保存页面时,因为网页保存为.xhtml。但是当我尝试使用wget或curl下载它时,它将被下载为.html。有什么方法可以下载它,因为它像.xhtml?我真的需要它。
答案 0 :(得分:3)
您正在下载RSS feed。这不是(X)HTML文档,而是它自己的XML文档类型。 您的浏览器正在显示RSS源XML的wget
/ curl
,则表示您正在下载其XML文件。每个浏览器都可以为RSS提要选择不同的表示。仅使用wget
/ curl
更新1:您需要一个软件将RSS提要XML转换为XHTML(即A类型的XML到B类型的XML)。这是通过XSLT(可扩展样式表语言转换)完成的。没有明显或“正确”的解决方案,因为可以通过编写任意XSL样式表来自由选择目标表示。请注意,这并不是特别容易。根据您使用的技术堆栈,可能还有预制解决方案。尝试谷歌搜索“rss到xhtml”或类似。
更新2 :为了帮助您入门,请执行以下操作:
xsltproc
(应在您的软件包管理器中提供,但:download,sources)rss2xhtml.xsl
wget -O - -o /dev/null "http://www.rt.com/rss/news/" | xsltproc rss2xhtml.xsl /dev/stdin > out.xhtml
提供的样式表非常基础,可根据需要自定义,如果您想学习这些内容:)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- http://stackoverflow.com/a/32884376/1529709 -->
<xsl:output method="html" indent="yes"/>
<xsl:template match="text()"></xsl:template>
<xsl:template match="item">
<h2><a href="{link}"><xsl:value-of select="title"/></a></h2>
<p><xsl:value-of select="description" disable-output-escaping="yes"/></p>
</xsl:template>
<xsl:template match="/rss/channel">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title><xsl:value-of select="title"/></title>
<style>img,p {display:block;float:none;}</style>
</head>
<body>
<h1><a href="{link}"><xsl:value-of select="title"/></a></h1>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:2)
您可以通过添加-O参数来执行此操作:
wget -O centos-org.xhtml https://www.centos.org
或者你可以尝试使用cURL
来做到这一点curl https://www.centos.org > centos-org.xhtml
答案 2 :(得分:0)
Afaik唯一的区别是扩展名。
wget http://website.com/index.html && mv index.html index.xhtml