[英]How to download xhtml webpage as it is using wget
您好,當我嘗試右鍵單擊並保存頁面時,因為網頁另存為.xhtml。 但是,當我嘗試使用wget或curl下載它時,它正以.html格式下載。 有什么辦法可以下載它,就像.xhtml一樣? 我真的很需要
您正在下載RSS feed 。 這不是(X)HTML文檔,而是它自己的XML文檔類型。 您的瀏覽器正在顯示RSS feed XML的(X)HTML表示形式 。 如果在瀏覽器中單擊“另存為”,它將表示形式保存到磁盤。 如果您針對RSS feed的URL運行wget
/ curl
,那么您正在下載其XML文件。 每個瀏覽器可能會為RSS feed選擇不同的表示形式。 wget
/ curl
無法模擬這一點。
更新1:您需要一個將RSS feed XML轉換為XHTML(即,將類型A的XML轉換為類型B的XML)的軟件。 這是通過XSLT (可擴展樣式表語言轉換)完成的。 沒有明顯或“正確”的解決方案,因為可以通過編寫任意XSL樣式表自由選擇目標表示形式。 請注意,這並不是特別容易。 根據您使用的技術堆棧,可能還會提供預制解決方案。 嘗試搜索“ rss to 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>
您可以通過添加-O參數來實現:
wget -O centos-org.xhtml https://www.centos.org
或者您可以嘗試使用cURL進行此操作
curl https://www.centos.org > centos-org.xhtml
Afaik唯一的區別是擴展。
wget http://website.com/index.html && mv index.html index.xhtml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.