Как получить Infobox из статьи в Википедии от Mediawiki API? - PullRequest
26 голосов
/ 03 октября 2011

Статьи Википедии могут иметь шаблоны Infobox.Следующим звонком я могу получить первый раздел статьи, который включает в себя Infobox.

http://en.wikipedia.org/w/api.php?action=parse&pageid=568801&section=0&prop=wikitext

Мне нужен запрос, который будет возвращать только данные Infobox.Возможно ли это?

Ответы [ 4 ]

27 голосов
/ 13 декабря 2012

Вы можете сделать это с помощью URL-адреса в API Википедии следующим образом:

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xmlfm&titles=Scary%20Monsters%20and%20Nice%20Sprites&rvsection=0

Замените раздел titles= заголовком своей страницы и format=xmlfm на format=json, если вы хотите статью в формате json.

12 голосов
/ 02 ноября 2011

Вместо того, чтобы самостоятельно разбирать инфобоксы, что довольно сложно, взгляните на DBPedia , в котором инфобоксы Википедии извлечены как объекты базы данных.

2 голосов
/ 30 января 2017

Опираясь на ответ @ Гарри, вы можете сделать так, чтобы википедия проанализировала информационное окно в html для вас через параметр rvparse, например:

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=Scary%20Monsters%20and%20Nice%20Sprites&rvsection=0&rvparse

Обратите внимание, что ни один из методов не вернет просто информационное окно. Но из html-контента вы можете извлечь (например, через Beautifulsoup) table с классом infobox.

В Python вы делаете что-то вроде следующего

resp = requests.get(url).json()
page_one = next(iter(resp['query']['pages'].values()))
revisions = page_one.get('revisions', [])
html = next(iter(revisions[0].values()))
# now parse the html 
1 голос
/ 25 мая 2017

Если на странице есть информационный блок справа, используйте этот URL для получения его в виде текста. Мой пример использует элемент Водород. Все, что вам нужно сделать, это заменить «Водород» своим названием.

https://en.wikipedia.org/w/index.php?action=raw&title=Template:Infobox%20hydrogen

Если вы ищете формат JSON, используйте этот URL, но это не очень красиво.

https://en.wikipedia.org/w/api.php?action=parse&page=Template:Infobox%20hydrogen&format=json

...