Есть ли способ поиска страницы и извлечения ее информации с помощью одного запроса на выборку из Википедии API? - PullRequest
0 голосов
/ 18 апреля 2020

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

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

Возможно ли, что я могу каким-то образом извлечь информацию о странице без изображений и ссылок, а?

моя текущая функция:

async function getVideosWikiInfo(term) {
    if (!term) term = 'Nto'
    const searchRes= await fetch(`https://en.wikipedia.org/w/api.php?&origin=*& action=opensearch&search=${term}&titles&limit=1`).then(res=>res.json())
    const searchUrl= searchRes[3][0]
    const pageTitle=searchUrl.substr(30,searchUrl.length-1)
    console.log(pageTitle);
    const res = await  fetch(`http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=${pageTitle}`)
    console.log(res);
}

1 Ответ

1 голос
/ 18 апреля 2020

Вы можете использовать generator модуль вместо параметра titles, однако это означает, что вам придется использовать модуль поисковых запросов вместо API opensearch.

URL будет выглядеть примерно так:

`http://en.wikipedia.org/w/api.php?action=query\
&prop=extracts&exintro=\
&generator=search&gsrsearch=${term}&gsrlimit=1\
&format=json`
...