2009-06-08 51 views
59

我试图找出是否有维基百科API(我认为它与mediawiki有关?)。如何使用wikipedia API如果存在?

如果是这样,我想知道我将如何告诉维基百科给我一篇关于纽约洋基的文章。

这个例子的REST网址是什么?

关于此主题的所有文档看起来相当复杂。

+5

的“如果存在”部分也是这里介绍:HTTP:// stackoverflow.com/questions/627594/is-there-a-wikipedia-api。但我认为“如何使用它”部分是一个合理的问题......有点。 – Jonik 2009-06-08 12:14:38

+0

现在有一个R包可以访问Mediawiki API(以及维基百科),更多详细信息和示例:http://stackoverflow.com/a/24027866/1036500 – Ben 2014-06-04 02:06:53

回答

81

你真的需要花一些时间阅读文档,因为这花了我一点时间看看,然后点击链接来解决它。 :/但出于同情我会给你一个链接,也许你可以学习使用。

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=New_York_Yankees&rvprop=timestamp|user|comment|content

这就是variabled你会找得到的。最好的办法是要知道你将是以后的页面,并取代维基百科的链接部分入题,即:

http://en.wikipedia.org/wiki/New_York_Yankees [维基后把部分/]

- >

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=New_York_Yankees&rvprop=timestamp|user|comment|content

[把它放在GET请求的标题变量中。

上面的URL可以通过调整来获得你做或不想做的不同部分。所以请阅读文档:)

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文档,但我希望这些示例能够帮助大多数来这里快速修复的人员。

8

如果你想提取从维基百科的结构化数据,您可以考虑使用DBpedia的http://dbpedia.org/

它提供的手段来查询使用利用解析维基百科的信息框模板SPARQL数据返回给定的标准数据

有一些SPARQL库可用于多种平台以使查询更容易

1

Wiki Parser转换维基百科转储到XML。它也很快。然后,您可以使用任何XML处理工具来处理解析的维基百科文章中的数据。

2

下面是一个实用的示例进行打印从维基百科纽约洋基页的第一句到Web浏览器的控制台:

<!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/