【问题标题】:How to use wikipedia api if it exists? [closed]如果存在,如何使用 wikipedia api? [关闭]
【发布时间】:2010-11-01 03:45:23
【问题描述】:

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

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

此示例的 REST URL 是什么?

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

【问题讨论】:

标签: wikipedia-api mediawiki-api


【解决方案1】:

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

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 可以通过调整来获得您想要或不想要的不同部分。所以请阅读文档:)

【讨论】:

  • +1 是一个实际的例子,而不是仅仅转储链接(即使这个例子也只是一个链接...... :)
  • 维基百科沙盒是一个很棒的起点。它可以帮助您格式化您的请求/查询:en.wikipedia.org/wiki/Special:ApiSandbox
  • 不知道具体页面怎么办?如果我想搜索 Iron Maiden 乐队?该页面可以是“铁娘子”、“铁娘子”、“铁娘子乐队”。我该如何搜索?
【解决方案2】:

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

【讨论】:

  • 提供的第一个工作 url 还允许您检索 wiki 页面的信息框!谢谢
  • 嗨,有没有办法从主要描述中获取纯文本?解析wikitext或HTMl响应非常困难:(。任何帮助将不胜感激。
【解决方案3】:

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

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

【讨论】:

  • 是的,读完之后我不知道如何做我的例子。有什么想法吗?
  • 不,我真的无法弄清楚该文件。我不知道如何使用该 api 获取特定的页面数据。
  • 你实际上不能。要获取原始文章来源,您应该通过以下方式访问文章:mediawiki.org/w/index.php?title=API&action=raw
【解决方案4】:

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

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

【讨论】:

    【解决方案5】:

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

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

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

        下面是一个工作示例,它将维基百科 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

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

        最后但同样重要的是,请确保引用 Jquery.ajax() API: http://api.jquery.com/jquery.ajax/

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            猜你喜欢
            • 2012-02-15
            • 2011-11-03
            • 1970-01-01
            • 2016-10-01
            • 2015-04-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多