如何从网页中制作值列表?

如何从网页中制作值列表?

在这个网页中有一个 MediaWiki 特殊页面(即Special:名称空间的页面)的列表,我希望自动制作所有这些名称的简单文本列表。

我假设匹配该网页中出现的所有名称的匹配模式应该是Special:^[A-Z][a-z]*:.

您建议如何制作一个包含所有名称的简单文本列表?

答案1

我假设你指的是维基百科上的特殊页面网页,https://en.wikipedia.org/wiki/Help:Special_page,这不完全是您在问题中提到的内容。

它生成有效的 XML,因此可以由 XML 工具(例如xmlstarlet.由此,您可以通过使用 XPath 路径识别页面并验证它们以以下内容开头来轻松列出页面Special:

curl https://en.wikipedia.org/wiki/Help:Special_page |
    xmlstarlet sel -t -v '//ul/li/a[starts-with(text(),"Special:")]' -n

输出示例

Special:SpecialPages
Special:AllMessages (System messages)
Special:Statistics
Special:Version
Special:SiteMatrix (Wikimedia wikis)
Special:AllPages
Special:AllPages/T
...

您可以通过稍微更改路径来限制返回的页面名称集。最初我正在使用,/div[@id="mw-content-text"]/div/ul/li/a[starts-with(text(),"Special:")]但对于您简单的要求“来说,这似乎过于复杂”列出一个清单全部这些名字”。

相关内容