-->

从获得通过API链接到MediaWiki网页文本内容(Get Text Content from m

2019-09-01 06:07发布

我很新的到MediaWiki,现在我有一个有点问题。 我有一些Wiki页面的标题,我想只是使用api.php一说,页面的内容,但所有我在API中已经找到一种方法来获取页面的内容维基(wiki标记)。 我用这个HTTP请求......

/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&format=xml&titles=test

但我只需要文字内容,而Wiki标记。 这有可能与MediaWiki的API?

Answer 1:

我不认为这是可能使用API​​来获取只是文本。

有什么工作对我来说是要求HTML页面(使用,你会在浏览器中使用正常的URL)和内容DIV下剥离出的HTML标签。

编辑:

我曾用了良好的效果HTML解析器的Java。 它如何在给定DIV下剥离出的HTML标签的例子。



Answer 2:

action=parse获得的HTML:

/api.php?action=parse&page=test

获得从HTML文本的方法之一是将其加载到浏览器和行走的节点,只对文本节点看,使用JavaScript。



Answer 3:

API的扩展TextExtracts不约你问。 使用prop=extracts得到清理响应。 例如, 此链接给你清理的堆栈溢出文章全文 。 什么也不错的是,它仍包括部分标记,这样你就可以找出文章的各个部分。

只是包括在我的答案可见的链接,上面的链接看起来像:

/api.php?format=xml&action=query&prop=extracts&titles=Stack%20Overflow&redirects=true

编辑:作为阿姆鲁提到,TextExtracts是一个扩展到MediaWiki,所以它不一定适用于所有的MediaWiki站点。



Answer 4:

添加?action=raw在链接到MediaWiki页面结束返回原始文本格式的最新内容。 例如: - https://en.wikipedia.org/wiki/Main_Page?action=raw



Answer 5:

您可以通过使用获得从API文本格式的维基数据explaintext参数。 另外,如果你需要访问很多头衔的信息,你可以得到所有的冠军在一个单一的呼叫维基数据。 使用管道符| 到每个标题分离。 例如,这个API调用将返回来自“谷歌”和“雅虎”页上的数据:

http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exlimit=max&explaintext&exintro&titles=Yahoo|Google&redirects=

参数:

  • explaintext :返回提取纯文本,而不是HTML有限。
  • exlimit=max :返回不止一个结果。 马克斯是目前20。
  • exintro :只返回第一个部分之前的内容。 如果你想完整的数据,只是删除这一点。
  • redirects= :解决重定向问题。


Answer 6:

这是最简单的方法: http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Albert%20Einstein&prop=revisions&rvprop=content



Answer 7:

Python用户来到这个问题可能是有意的在wikipedia模块( 文档 ):

import wikpedia
wikipedia.set_lang('de')
page = wikipedia.page('Wikipedia')
print(page.content)

每一个格式,除了部分( == )的条纹了。



Answer 8:

用行动=渲染,以获得尽可能干净的页面:

https://wiki.eclipse.org/Tip_of_the_Day/Eclipse_Tips/Now_where_was_I?action=render

VS

https://wiki.eclipse.org/Tip_of_the_Day/Eclipse_Tips/Now_where_was_I



Answer 9:

无需任何格式符号Wiki页面就没有真正在许多情况下太大的意义。

您可以剥离出格​​式化自己,如果你想,但你会在这个过程中打破一些东西。

(除非你正在创建像搜索引擎,在这种情况下,你只需要在文本部分,可以忽略格式符号完全)



Answer 10:

你可以做一件事的内容带入你的页面后-你可以使用PHP函数strip_tags()删除HTML标签。



文章来源: Get Text Content from mediawiki page via API