【问题标题】:How to get Wikipedia "clean" content?如何获得维基百科“干净”的内容?
【发布时间】:2013-04-09 18:48:03
【问题描述】:

我使用Mediawiki api 来从维基百科页面获取内容。 我编写了一个生成下一个查询的代码(例如):

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=hawaii

仅检索关于夏威夷的维基百科页面的开头段落。

问题是您可能会注意到有很多不相关的子字符串,例如:

"[[Molokai|Moloka{{okina}}i]], [[Lanai|Lāna{{okina}}i]], [[Kahoolawe|Kaho{{okina}}olawe]], [[Maui]] and the [[Hawaii (island)|"

所有这些括号 [[]] 都不相关,我想知道是否有一种优雅的方法可以只从这些页面中提取“干净”的内容?

提前致谢。

【问题讨论】:

  • 你真的只想要第一部分,还是只是一个例子?

标签: php wikipedia wikipedia-api mediawiki-api


【解决方案1】:

您可以使用以下查询从 Wikipedia 获得干净的 HTML 文本:

https://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=hawaii

如果你只想要纯文本,没有 HTML,试试这个:

https://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=hawaii&explaintext

【讨论】:

    【解决方案2】:

    请试试这个:

    $relevant = preg_replace('/[[.*?]]/', '', $string);

    编辑:刚刚找到 this - 希望对您有所帮助

    【讨论】:

    • 这也会删除实际的链接标签。
    • 谢谢,它实际上满足了我的需求 - 但是 - 我已经构建了一个网络应用程序,所以我将搜索类似网络的类似功能。
    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 2011-12-26
    • 2015-05-08
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多