Как использовать API Википедии, если она существует?

61

Я пытаюсь выяснить, есть ли википедия api (я думаю, что это связано с медиавиками?).

Если это так, я хотел бы знать, как я бы сказал wikipedia, чтобы дать мне статью о новых йоркских янки, например.

Каким будет URL-адрес REST для этого примера?

Все документы по этому вопросу кажутся довольно сложными.

  • 5
    Часть «если она существует» также описана здесь: stackoverflow.com/questions/627594/is-there-a-wikipedia-api . Но я думаю, что часть «как это использовать» - законный вопрос ... вроде.
  • 0
    Теперь есть пакет R, который обращается к Mediawiki API (и так же к Википедии), подробности и пример: stackoverflow.com/a/24027866/1036500
Теги:
wikipedia
wikipedia-api
mediawiki
mediawiki-api

8 ответов

77
Лучший ответ

Вам действительно нужно потратить некоторое время на чтение документации, так как это заняло у меня минуту, чтобы посмотреть и нажмите ссылку, чтобы исправить это.:/но из-за сочувствия я дам вам ссылку, которую, возможно, вы можете научиться использовать.

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

То, что вы получите, вы получите. Лучше всего знать страницу, на которой вы будете следовать, и заменить часть ссылки Википедии в заголовок i.e.:

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

[Поместите его в переменную title запроса GET.

URL-адрес, указанный выше, может быть использован для настройки различных разделов, которые вы делаете или не хотите. Поэтому прочитайте документацию:)

  • 19
    +1 для реального примера, вместо того, чтобы просто сбрасывать ссылки (хотя пример также является просто ссылкой ... :)
  • 6
    Фантастическое место для начала с песочницей Википедии. Это может помочь вам отформатировать ваши запросы / запросы: en.wikipedia.org/wiki/Special:ApiSandbox
Показать ещё 1 комментарий
69

Ответы здесь помогли мне прийти к решению, но я обнаружил больше информации в процессе, которая может быть полезной для других, кто находит этот вопрос. Я считаю, что большинство людей просто хотят использовать 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, как было упомянуто, но я надеюсь, что эти примеры помогут большинству людей, которые приходят сюда для быстрого исправления.

  • 0
    Первый предоставленный рабочий URL-адрес также позволяет вам получить информационный блок для вики-страницы! Спасибо
  • 0
    Привет, есть ли способ получить простой текст из основного описания? очень трудно разобрать ответы викитекста или HTMl :(. любая помощь будет высоко оценена, пожалуйста.
13

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

В частности, для английской Википедии API находится в http://en.wikipedia.org/w/api.php

  • 3
    да, я не могу понять, как сделать мой пример после прочтения этого. есть идеи?
  • 3
    нет, я серьезно не могу понять этот документ. я не знаю, как получить конкретные данные страницы с помощью этого API.
Показать ещё 1 комментарий
9

Посмотрите на ApiSandbox на https://en.wikipedia.org/wiki/Special:ApiSandbox Это веб-интерфейс, чтобы легко запросить API. Несколько кликов создадут вам URL-адрес и покажут результат API.

Это расширение для MediaWiki, включенное на всех языках Википедии. https://www.mediawiki.org/wiki/Extension:ApiSandbox

8

Если вы хотите извлечь структурированные данные из Википедии, вы можете использовать DbPedia http://dbpedia.org/

Он предоставляет средства для запроса данных с использованием заданных критериев с использованием SPARQL и возвращает данные из проанализированных шаблонов инфобокс Википедии

Есть несколько библиотек SPARQL, доступных для нескольких платформ, чтобы упростить запросы

3

Если вы хотите извлечь структурированные данные из Википедии, вы также можете попробовать http://www.wikidata.org/wiki/Wikidata:Main_Page

2

Ниже приведен рабочий пример, который выводит первое предложение из страницы Wikipedias New York Yankees на консоль веб-браузеров:

<!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 конечная точка для вашего URL-адреса. Вы можете посмотреть, как структурировать свой URL, посетив: http://www.mediawiki.org/wiki/API:Main_page

Я использовал jsonp в качестве типа dataType, чтобы разрешать межсайтовые запросы. Подробнее можно найти здесь: http://www.mediawiki.org/wiki/API:Cross-site_requests

И последнее, но не менее важное: обязательно обратитесь к API JQuery.ajax(): http://api.jquery.com/jquery.ajax/

1

Wiki Parser конвертирует отвалы Википедии в XML. Это также довольно быстро. Затем вы можете использовать любой инструмент обработки XML для обработки данных из проанализированных статей Википедии.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню