2016-05-06 5 views
2

Как получить страницу Википедии (на определенном языке, скажем на французском языке) из идентификатора Wikidata (например: Q19675)? Вопрос кажется очевидным, но, как ни странно, я ничего не нашел в Интернете. Я ищу команду URL-адрес, который я мог бы использовать с модулем запросов Python, что-то вроде:Как получить страницу Википедии из Wikidata Id?

url = "https://www.wikidata.org/w/api.php?action=some_method&ids=Q19675" 
r = requests.post(url, headers={"User-Agent" : "Magic Browser"}) 

Кто-то может мне помочь?

ответ

5

Вы должны использовать MediaWiki API с action=wbgetentities:

https://www.wikidata.org/w/api.php?action=wbgetentities&format=xml&props=sitelinks&ids=Q19675&sitefilter=frwiki 

где:

  • ids=Q19675 - викиданные элемент ID
  • sitefilter=frwiki - получить заголовок страницы только для французской Википедии

Для вашего пример ответа будет:

<api success="1"> 
    <entities> 
     <entity type="item" id="Q19675"> 
      <sitelinks> 
       <sitelink site="frwiki" title="Musée du Louvre"> 
        <badges/> 
       </sitelink> 
      </sitelinks> 
     </entity> 
    </entities> 
</api> 
+1

Спасибо за ваш ответ Termininja. Могу ли я правильно сказать, что URL-адрес всегда можно найти в fr.wikipedia.org/wiki/{title с пробелами, замененными символами подчеркивания}? – Patrick

+0

Конечно, в приведенном выше примере, где мы запрашиваем ссылку frwiki, URL-адрес результата будет следующим: https://fr.wikipedia.org/wiki/Musée_du_Louvre. Кроме того, если вы хотите получить более одного названия для более чем одного вики, вы можете сделать это [https://www.wikidata.org/w/api.php?action=wbgetentities&format=xml&props=sitelinks&ids=Q19675|Q650519&sitefilter= frwiki | dewiki | zhwiki). – Termininja