Подтвердить что ты не робот

Как получить содержимое Википедии с использованием API Википедии?

Я хочу получить первый абзац статьи в Википедии.

Что такое запрос API для этого?

4b9b3361

Ответ 1

Смотрите раздел Документы MediaWiki

Это ключевые параметры.

prop=revisions&rvprop=content&rvsection=0

rvsection = 0 указывает только на возврат ведущего раздела.

См. этот пример.

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=pizza

Чтобы получить HTML, вы можете использовать аналогичное использование action = parse http://en.wikipedia.org/w/api.php?action=parse&section=0&prop=text&page=pizza

Обратите внимание, что вам придется вычеркнуть любые шаблоны или инфобокс.

Ответ 2

См. Есть ли чистый API-интерфейс для википедии только для получения резюме резюме? для других предлагаемых решений. Вот что я предложил:

На самом деле существует очень хороший prop, называемый extracts, который может использоваться с запросами, разработанными специально для этой цели. Экстракты позволяют получать выдержки из статьи (усеченный текст статьи). Существует параметр exintro, который можно использовать для извлечения текста в нулевом разделе (без дополнительных ресурсов, таких как изображения или инфобокс). Вы также можете извлекать экстракты с более высокой степенью детализации, например, определенным количеством символов (обменов) или определенным количеством предложений ( exsentences)

Ниже приведен пример запроса http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow и песочницу API http://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow, чтобы поэкспериментировать с этим запросом.

Обратите внимание, что если вы хотите, чтобы первый абзац специально вам нужно было получить первый тег. Однако в этом вызове API нет дополнительных ресурсов, таких как изображения для синтаксического анализа. Если вы удовлетворены этим вступительным резюме, вы можете получить текст, запустив такую ​​функцию, как php strip_tag, которые удаляют теги html.

Ответ 3

Я делаю так:

https://en.wikipedia.org/w/api.php?action=opensearch&search=bee&limit=1&format=json

Ответ, который вы получаете, представляет собой массив с данными, который легко анализировать:

[
  "bee",
  [
    "Bee"
  ],
  [
    "Bees are flying insects closely related to wasps and ants, known for their role in pollination and, in the case of the best-known bee species, the European honey bee, for producing honey and beeswax."
  ],
  [
    "https://en.wikipedia.org/wiki/Bee"
  ]
]

Чтобы получить только первый абзац limit=1 - это то, что вам нужно.

Ответ 4

Если вам нужно сделать это для большого количества статей, то вместо прямого запроса на веб-сайт рассмотрите возможность загрузки дампа базы данных Wikipedia, а затем доступа к нему через API, например JWPL.

Ответ 6

<script>    
    function dowiki(place) {
        var URL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=';

        URL += "&titles=" + place;
        URL += "&rvprop=content";
        URL += "&callback=?";
        $.getJSON(URL, function (data) {
            var obj = data.query.pages;
            var ob = Object.keys(obj)[0];
            console.log(obj[ob]["extract"]);
            try{
                document.getElementById('Label11').textContent = obj[ob]["extract"];
            }
            catch (err) {
                document.getElementById('Label11').textContent = err.message;
            }

        });
    }
</script>

Ответ 7

Вы можете напрямую загрузить базу данных Wikipedia и проанализировать все страницы в XML с помощью Wiki Parser, который является автономным приложением. Первый параграф представляет собой отдельный node в полученном XML.

В качестве альтернативы вы можете извлечь первый абзац из своего текстового вывода.

Ответ 8

Вы можете использовать JQuery для этого. Сначала создайте URL с соответствующими параметрами. Проверьте ссылку, чтобы понять, что означают параметры. Затем используйте метод $.ajax() для извлечения статей. Обратите внимание, что wikipedia не разрешает запрос на перекрестный поиск. Вот почему мы используем dataType : jsonp в запросе.

var wikiURL = "https://en.wikipedia.org/w/api.php";
wikiURL += '?' + $.param({
    'action' : 'opensearch',
    'search' : 'your_search_term',
    'prop'  : 'revisions',
    'rvprop' : 'content',
    'format' : 'json',
    'limit' : 10
});

 $.ajax( {
    url: wikiURL,
    dataType: 'jsonp',
    success: function(data) {
       console.log(data);
    }
} );