簡體   English   中英

如何使用wget下載xhtml網頁

[英]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 (應該在軟件包管理器中可用,但是: downloadsources
  • 將下面的樣式表保存到rss2xhtml.xsl
  • wget -O - -o /dev/null "http://www.rt.com/rss/news/" | xsltproc rss2xhtml.xsl /dev/stdin > out.xhtml
  • ...而且,這里有您的HTML

提供的樣式表非常基礎,如果您想學習這些內容,請根據需要進行自定義:)

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM