2016-05-04 6 views
6

Как получить идентификатор Wikidata из английского названия статьи в Википедии, а также для перенаправления? Есть ли API-вызов?Как получить идентификатор Wikidata для статьи в Википедии API?

Пример:

Karachi >> Q8660 
Karaachi >> Q8660 

Как подойти к изменениям в назначении? Теперь Media in Karachi перенаправляется на Media of Pakistan (Wikidata item Q6805922), но может быть собственной статьей позже.

ответ

7

Использование Wikipedia API для создания запроса со свойством pageprops и resolving redirects:

https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&ppprop=wikibase_item&redirects=1&titles=ARTICLE_NAME 

В вашем случае для статей Википедии «СМИ в Карачи» и «СМИ Пакистана» вы получите тот же элемент изображения Википедия: Q6805922. То же самое для "Karaachi" и "Karachi"Q8660.

2

Как и принятый ответ, вы также можете использовать API-интерфейс Wikidata, непосредственно проходящий через сайт и заголовок.

Документов находятся на https://www.wikidata.org/w/api.php?action=help&modules=wbgetentities

Получить объект для http://en.wikipedia.org/wiki/Karachi:

+0

у вас есть пример вопроса, решаемые с помощью ' normalize'? – maxlath

+0

Да, простым случаем будет titles = karachi не вернет результат, поскольку заголовок должен быть заглавным, normalize = 1 исправит это. Я обновлю ответ. – Addshore

1

Мне нужно было сделать это в G oogle Sheets, и смог сделать это с помощью такой формулы. Это предполагает, что название Википедия находится в столбце B. Копирование вниз строк вам нужно

=IMPORTXML(concat("https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&ppprop=wikibase_item&redirects=1&format=xml&titles=",B1),"//@wikibase_item") 

Еще одно предложение заключается в использовании дамп https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-page_props.sql.gz, 230MB застегнул