Wikipedia API: как разобрать текст контента в JSON? - PullRequest
0 голосов
/ 01 мая 2018

EDIT

Не уверен, что делать, потому что я понял, что вопрос, который я первоначально задал, не имеет отношения к тому, что я действительно хотел, потому что я думал, что descriptionurl и shortdescriptionurl из запроса Wikipedia 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 против 1. ФК Магдебург в 2007/08 Региональная лига Норд. (описание)
  • 24 мая 2008 г. (Дата)
  • Poldvr (Автор)

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

Мне не удалось выяснить это ни по странице API Википедии в действии parse , ни из Песочницы Википедии API.

Можно ли это сделать?


Вот старый вопрос, который задавал неправильную вещь

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

1 Ответ

0 голосов
/ 01 мая 2018

Когда я помещаю ваш 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 с выбранным вами языком программирования.

...