Подтвердить что ты не робот

Как получить Infobox из статьи в Википедии от API Mediawiki?

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

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

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

4b9b3361

Ответ 1

Вы можете сделать это с помощью 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.

Ответ 2

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

Ответ 3

На основе ответа @garry вы можете использовать wikipedia для отображения информационного поля в 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 

Ответ 4

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

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