Wikipedia API: как разобрать текст содержимого в JSON?

РЕДАКТИРОВАТЬ

Не уверен, что делать, потому что я понял, что вопрос, который я изначально задал, не имеет отношения к тому, что я действительно хотел, потому что я думал, что descriptionurl и shortdescriptionurl из запроса API Википедии файла изображения вернут текст, описывающий изображение, но на самом деле они просто описание URL-адреса, так что я чувствую себя немым.

Я попытался удалить вопрос, но мне не удалось, потому что уже есть ответ.

Итак, я собираюсь изменить вопрос на то, что я действительно хочу знать, но теперь ответ, который уже существует, не будет иметь никакого смысла, так что это своего рода беспорядок, но я не знаю, что с этим делать.

Что я действительно хотел знать

Когда я это сделаю:

https://en.wikipedia.org/w/api.php?action=query&pageids=18306940&prop=revisions&formatversion=2&rvprop=content

Я получаю это:

{
"batchcomplete": true,
"query": {
    "pages": [
        {
            "pageid": 18306940,
            "ns": 6,
            "title": "File:Rot-Weiss Essen Fans, May 2008.jpg",
            "revisions": [
                {
                    "contentformat": "text/x-wiki",
                    "contentmodel": "wikitext",
                    "content": "== Summary ==\n{{Information\n|Description=Fans of Rot-Weiss Essen are celebrating a 1-0 away victory against 1. FC Magdeburg in the 2007/08 Regionalliga Nord.\n|Source=I created this work entirely by myself.\n|Date=May 24, 2008\n|Author=[[User:Povldr|Povldr]] ([[User talk:Povldr|talk]])\n|other_versions=\n}}\n== Licensing: ==\n{{self|cc-by-sa-3.0|GFDL}}\n\n{{Copy to Wikimedia Commons|bot=Fbot|priority=true}}"
                }
            ]
        }
    ]
}

}

Я бы хотел, чтобы запрос возвращал только эти части контента:

  • Болельщики «Рот-Вайс Эссен» празднуют выездную победу 1: 0 над «Магдебургом» в Северной региональной лиге 2007/08. (описание)
  • 24 мая 2008 года (Дата)
  • Poldvr (Автор)

Я мог бы просто вытащить все это из строки содержимого, разрезав строку на C#, но есть ли какой-нибудь способ вернуть мне ее обратно, отформатированную как симпатичный маленький JSON?

Я не смог понять это ни из Страница API Википедии о действии parse, ни из Песочница API Википедии.

Это можно сделать?


Вот старый вопрос, который задавал не то

название было: Wikipedia API: как использовать descriptionurl и shortdescriptionurl?

Когда я это сделаю, например:

https://en.wikipedia.org/w/api.php?action=query&list=allimages&aiprop=url&date&format=json&ailimit=1&aifrom=rot

... одна из частей информации JSON называется "descriptionurl", а другая - "shortdescriptionurl".

Когда я ввожу эти URL-адреса в браузер, я просто попадаю на всю страницу изображения.

Как использовать эти URL-адреса, чтобы получить только текст фактического описания и краткого описания?

О, и прежде чем вы просто наберете ссылку на API Википедии, я пытался найти там эту информацию, но безуспешно. Там полно общей информации, но я не могу найти эту конкретную вещь.

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
0
590
1

Ответы 1

Когда я помещаю ваш URL-адрес в браузер, я получаю хороший JSON, как и ожидалось:

{
    "warnings": {
        "main": {
            "*": "Unrecognized parameter: date."
        }
    },
    "batchcomplete": "",
    "continue": {
        "aicontinue": "Rot-Weiss_Essen_logo.svg",
        "continue": "-||"
    },
    "query": {
        "allimages": [{
            "name": "Rot-Weiss_Essen_Fans,_May_2008.jpg",
            "url": "https://upload.wikimedia.org/wikipedia/en/5/5c/Rot-Weiss_Essen_Fans%2C_May_2008.jpg",
            "descriptionurl": "https://en.wikipedia.org/wiki/File:Rot-Weiss_Essen_Fans,_May_2008.jpg",
            "descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=18306940",
            "ns": 6,
            "title": "File:Rot-Weiss Essen Fans, May 2008.jpg"
        }]
    }
}

Чтобы извлечь отдельную запись, вам необходимо проанализировать JSON на выбранном вами языке программирования.

МэндиШоу, спасибо за ответ, я понял, что мой вопрос был на самом деле совершенно неверным, и переделал весь вопрос, чтобы понять, что я действительно пытаюсь сделать.

Le Mot Juiced 02.05.2018 16:35

Я не знаю ответа на новую версию вопроса, извините!

MandyShaw 02.05.2018 18:43

Другие вопросы по теме