2011-05-25 52 views
1

我目前正在修改offline-dokuwiki [1] shell脚本以获取应用程序的最新文档,以便自动嵌入该应用程序的实例中。这工作得很好,除了在其目前的形式,它抓住每一页的三个版本:使用wget仅以纯xhtml格式下载dokuwiki页面

  1. 完整页面包括页眉和页脚
  2. 没有页眉和页脚
  3. 原始wiki语法只是内容

我只是很实际兴趣2.这是由HTML标签<link>链接从主网页中<head>,像这样:

<link rel="alternate" type="text/html" title="Plain HTML" 
href="/dokuwiki/doku.php?do=export_xhtml&amp;id=documentation:index" /> 

与主维基页面的URL相同,只有它们在查询字符串中包含“do = export_xhtml”。有没有一种方法可以让wget只下载这些版本,或者自动将'& do = export_xhtml'添加到它随后的任何链接的末尾?如果是的话,这将是一个很大的帮助。

[1] http://www.dokuwiki.org/tips:offline-dokuwiki.sh(作者:samlt)

+0

我开始怀疑这个解决方案可能是只下载内容页面,然后用sed解析它以提取所有的url包括'do = export_xhtml',然后递归地对每个如此提取的url进行相同的操作。但我更喜欢它,如果可以指示wget首先获取纯html版本,或者如果可能的话,自动将查询字符串添加到每个url。 – AntonChanning 2011-05-26 10:57:51

+0

如果您为xml或xhtml以及某种处理工具(** xmlstartlet **,xslt,awk,perl,(不包括sed(有几十篇关于sed无法完成的文章的帖子),您可能会收到更多反馈HTML解析,忽略他们在你的危险!;-)) – shellter 2011-05-26 15:32:18

回答

2

DokuWiki的接受做参数作为HTTP标头为好。你可以运行wget参数 - 头文件“X-DokuWiki-Do:export_xhtml”

+0

谢谢,这正是我寻找的解决方案。为了使它起作用,我还必须将'* do = export_xhtml,* do = export_raw'添加到wgets'--reject'参数中。 – AntonChanning 2011-05-31 08:51:37