63

我正在尝试找出是否有 Wikipedia API(我认为它与 MediaWIki 有关?)。

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

此示例的 REST URL 是什么?

关于这个主题的所有文档似乎都相当复杂。

4

8 回答 8

82

你真的需要花一些时间阅读文档,因为这花了我一点时间查看并单击链接来修复它。:/但出于同情,我会为您提供一个链接,也许您可​​以学习使用。

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

这就是你想要得到的变量。您最好的选择是知道您将要访问的页面并将维基百科链接部分替换为标题,即:

http://en.wikipedia.org/wiki/New_York_Yankees [参加 wiki/ 之后的部分]

-->

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

[将其放在 GET 请求的标题变量中。

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

于 2009-06-08T12:07:38.063 回答
67

此处的答案帮助我找到了解决方案,但我在此过程中发现了更多信息,这可能对发现此问题的其他人有用。我认为大多数人只是想使用 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 文档,但我希望这些示例能帮助大多数来这里快速解决问题的人。

于 2012-04-12T00:30:22.420 回答
13

http://www.mediawiki.org/wiki/API

具体来说,对于英文维基百科,API 位于http://en.wikipedia.org/w/api.php

于 2009-06-08T11:32:30.317 回答
10

看看https://en.wikipedia.org/wiki/Special:ApiSandbox上的 ApiSandbox 这是一个可以轻松查询API的 Web 前端。单击几下即可制作 URL 并向您显示 API 结果。

这是 MediaWiki 的扩展,可在所有 Wikipedia 语言上启用。https://www.mediawiki.org/wiki/Extension:ApiSandbox

于 2013-02-13T16:02:25.493 回答
8

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

它提供了使用 SPARQL 使用给定条件查询数据的方法,并从解析的 Wikipedia 信息框模板返回数据

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

于 2012-12-18T22:00:32.647 回答
3

如果你想从维基百科中提取结构化数据,你也可以试试 http://www.wikidata.org/wiki/Wikidata:Main_Page

于 2014-03-25T17:38:16.677 回答
1

下面是一个工作示例,它将 Wikipedias New York Yankees页面中的第一句话打印到您的 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 查看如何构建您的 url

我使用 jsonp 作为数据类型来允许跨站点请求。更多信息可以在这里找到: http ://www.mediawiki.org/wiki/API:Cross-site_requests

最后但同样重要的是,请务必参考 Jquery.ajax() API: http ://api.jquery.com/jquery.ajax/

于 2015-04-13T10:13:23.060 回答
0

Wiki Parser将 Wikipedia 转储转换为 XML。它也相当快。然后,您可以使用任何 XML 处理工具来处理来自已解析的 Wikipedia 文章的数据。

于 2015-01-29T16:49:07.813 回答