我很新的到MediaWiki,现在我有一个有点问题。 我有一些Wiki页面的标题,我想只是使用api.php一说,页面的内容,但所有我在API中已经找到一种方法来获取页面的内容维基(wiki标记)。 我用这个HTTP请求......
/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&format=xml&titles=test
但我只需要文字内容,而Wiki标记。 这有可能与MediaWiki的API?
我很新的到MediaWiki,现在我有一个有点问题。 我有一些Wiki页面的标题,我想只是使用api.php一说,页面的内容,但所有我在API中已经找到一种方法来获取页面的内容维基(wiki标记)。 我用这个HTTP请求......
/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&format=xml&titles=test
但我只需要文字内容,而Wiki标记。 这有可能与MediaWiki的API?
我不认为这是可能使用API来获取只是文本。
有什么工作对我来说是要求HTML页面(使用,你会在浏览器中使用正常的URL)和内容DIV下剥离出的HTML标签。
编辑:
我曾用了良好的效果HTML解析器的Java。 它如何在给定DIV下剥离出的HTML标签的例子。
用action=parse
获得的HTML:
/api.php?action=parse&page=test
获得从HTML文本的方法之一是将其加载到浏览器和行走的节点,只对文本节点看,使用JavaScript。
API的扩展TextExtracts不约你问。 使用prop=extracts
得到清理响应。 例如, 此链接给你清理的堆栈溢出文章全文 。 什么也不错的是,它仍包括部分标记,这样你就可以找出文章的各个部分。
只是包括在我的答案可见的链接,上面的链接看起来像:
/api.php?format=xml&action=query&prop=extracts&titles=Stack%20Overflow&redirects=true
编辑:作为阿姆鲁提到,TextExtracts是一个扩展到MediaWiki,所以它不一定适用于所有的MediaWiki站点。
添加?action=raw
在链接到MediaWiki页面结束返回原始文本格式的最新内容。 例如: - https://en.wikipedia.org/wiki/Main_Page?action=raw
您可以通过使用获得从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=
:解决重定向问题。 这是最简单的方法: http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Albert%20Einstein&prop=revisions&rvprop=content
Python用户来到这个问题可能是有意的在wikipedia
模块( 文档 ):
import wikpedia
wikipedia.set_lang('de')
page = wikipedia.page('Wikipedia')
print(page.content)
每一个格式,除了部分( ==
)的条纹了。
用行动=渲染,以获得尽可能干净的页面:
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
无需任何格式符号Wiki页面就没有真正在许多情况下太大的意义。
您可以剥离出格式化自己,如果你想,但你会在这个过程中打破一些东西。
(除非你正在创建像搜索引擎,在这种情况下,你只需要在文本部分,可以忽略格式符号完全)
你可以做一件事的内容带入你的页面后-你可以使用PHP函数strip_tags()
删除HTML标签。