我试图找出是否有维基百科api(我认为它与mediawiki有关?)。
如果是这样,我想知道如何告诉维基百科给我一篇关于纽约洋基队的文章。
这个例子的REST网址是什么?
关于这个主题的所有文档似乎都相当复杂。
答案 0 :(得分:81)
你真的需要花一些时间阅读文档,因为这花了我一点时间来查看并点击链接来修复它。 :/但出于同情,我会为您提供一个可以学习使用的链接。
这是你想要获得的变数。您最好的选择是知道您将要访问的页面并将维基百科链接部分替换为标题,即:
http://en.wikipedia.org/wiki/New_York_Yankees [参加wiki /]之后的部分
- >
[将其放在GET请求的标题变量中。
上面的URL可以通过调整来获取您做或不想要的不同部分。所以阅读文档:)
答案 1 :(得分:66)
这里的答案帮助我找到了解决方案,但我在这个过程中发现了更多信息,这些信息对于发现这个问题的其他人来说可能是有利的。我认为大多数人只是想使用API来快速获取页面内容。我正是这样做的:
使用修订:
//working url:
http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=Threadless&rvprop=content&format=json&rvsection=0&rvparse=1
//Explanation
//Base Url:
http://en.wikipedia.org/w/api.php?action=query
//tell it to get revisions:
&prop=revisions
//define page titles separated by pipes. In the example i used t-shirt company threadless
&titles=whatever|the|title|is
//specify that we want the page content
&rvprop=content
//I want my data in JSON, default is XML
&format=json
//lets you choose which section you want. 0 is the first one.
&rvsection=0
//tell wikipedia to parse it into html for you
&rvparse=1
使用摘录(更好/更容易做我正在做的事)
//working url:
http://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=Threadless&format=json&exintro=1
//only explaining new parameters
//instead of revisions, we'll set prop=extracts
&prop=extracts
//if we just want the intro, we can use exintro. Otherwise it shows all sections
&exintro=1
所有信息都需要阅读API文档,但我希望这些示例能够帮助大多数来这里快速解决的人。
答案 2 :(得分:13)
请参阅http://www.mediawiki.org/wiki/API
具体而言,对于英语维基百科,API位于http://en.wikipedia.org/w/api.php
答案 3 :(得分:9)
在https://en.wikipedia.org/wiki/Special:ApiSandbox处查看ApiSandbox这是一个轻松查询API的网络前端。只需点击几下即可为您制作网址,并向您显示API结果。
这是MediaWiki的扩展,在所有维基百科语言上启用。 https://www.mediawiki.org/wiki/Extension:ApiSandbox
答案 4 :(得分:3)
如果您想从维基百科中提取结构化数据,您也可以尝试 http://www.wikidata.org/wiki/Wikidata:Main_Page
答案 5 :(得分:2)
下面是一个工作示例,它将维基百科纽约洋基队页面中的第一句打印到您的网络浏览器控制台:
<!DOCTYPE html>
</html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<script>
var wikiUrl = "http://en.wikipedia.org/w/api.php?action=opensearch&search=New_York_Yankees&format=json&callback=wikiCallbackFunction";
$.ajax(wikiUrl, {
dataType: "jsonp",
success: function( wikiResponse ) {
console.log( wikiResponse[2][0] );
}
});
</script>
</body>
</html>
您的网址 http://en.wikipedia.org/w/api.php
端点。您可以访问以下网址查看如何构建您的网址:
http://www.mediawiki.org/wiki/API:Main_page
我使用jsonp作为dataType来允许跨站点请求。更多信息可以在这里找到: http://www.mediawiki.org/wiki/API:Cross-site_requests
最后但同样重要的是,请务必引用Jquery.ajax()API: http://api.jquery.com/jquery.ajax/
答案 6 :(得分:1)
Wiki Parser将Wikipedia转储转换为XML。它也很快。然后,您可以使用任何XML处理工具来处理已解析的Wikipedia文章中的数据。