Как получить данные Infobox из Википедии? - PullRequest
17 голосов
/ 22 июля 2010

Если у меня есть URL-адрес страницы, как я могу получить информацию о Infobox справа, используя веб-сервисы MediaWiki?

Ответы [ 8 ]

16 голосов
/ 17 апреля 2012

Возможно, немного поздно, но я хотел того же и не видел здесь простых решений, но (как указывает Брайан) оказалось, что использовать Mediawiki API с этой библиотекой не так уж сложно:

https://github.com/siznax/wptools

Использование:

>>> import wptools
>>> so = wptools.page('Stack Overflow').get_parse()
>>> so.infobox
{'alexa': '{{DecreasePositive}}',
 'author': '[[Joel Spolsky]] and [[Jeff Atwood]]',
 'caption': 'Screenshot of Stack Overflow as of February 2015',
 'commercial': 'Yes',
 'content_license': '[[Creative Commons license|CC-BY-SA]] 3.0',
 'current status': 'Online',
 'landscape': 'yes',
 'language': 'English',
 'launch date': '{{start date and age|2008|9|15}}',
 'logo': 'Stack Overflow logo.svg',
 'name': 'Stack Overflow',
 'owner': 'Stack Exchange, Inc.',
 'programming_language': '[[C Sharp (programming language)|C#]]',
 'registration': 'Optional; Uses [[OpenID]]',
 'revenue': '',
 'screenshot': 'Stack Overflow homepage.png',
 'slogan': '',
 'type': '[[:Category:Knowledge markets|Knowledge markets]]',
 'url': '{{URL|https://stackoverflow.com}}'}
13 голосов
/ 28 июля 2010

Если вы просто хотите проанализировать информационный блок или хотите получить некоторые переваренные данные, посмотрите на проект DBPedia: http://dbpedia.org

Он сканирует информационные блоки в WP, чтобы создать базу данных RDF из Википедии: https://github.com/dbpedia/extraction-framework/

11 голосов
/ 26 июля 2010

Нет тривиального способа сделать это. Вы можете попробовать извлечь содержимое страницы, используя action=raw, т.е. http://en.wikipedia.org/w/index.php?action=raw&title=Douglas_Jardine Затем найдите начало инфобокса, выполнив поиск {{Infobox. Затем найдите конец, найдя подходящую }}, учитывая, что сам информационный блок также может содержать пары {{ - }} и {{{ - }}}.

3 голосов
/ 09 декабря 2016

Каждая страница Wikipedia связана с элементом Wikidata, и все эти элементы включают большинство параметров из шаблонов Infobox на странице Wikipedia.Поэтому вам нужен только доступ к данным, связанным с вашей страницей в Википедии, из API Wikidata .

Пример того, как получить данные для страницы Википедии Дональда Трампа из Wikidata item :

https://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwiki&props=claims&titles=Donald Trump

Ответ будет включать: дату и место рождения, изображение, религию, мать, отца, детей, рост, подпись, официальный сайт и т. Д., ВсеОсновная информация о Дональде Трампе включена в информационный блок Википедии.

1 голос
/ 26 июля 2010

Tomxu - то, о чем вы говорите - это шаблон, который представляет собой простую страницу, которую вы можете включить на другую страницу.Для получения инфобокса вам нужно начать с просмотра Template: Infobox .Это дает вам подробные инструкции.

Вы также можете нажать edit (или просмотреть код) и скопировать содержимое в вашу собственную вики.Помните, что шаблоны, как правило, находятся в иерархии, поэтому вам может потребоваться скопировать другие шаблоны, которые использует Infobox (если вы хотите их использовать).Каждый шаблон можно идентифицировать с помощью {{}}, например, шаблон Infobox будет выглядеть следующим образом: {{Infobox}}.

Я упомянул иерархию: вы на самом деле найдете несколько шаблонов, которые все используют Template: Infobox,Чтобы найти их, просто введите это в поле поиска Википедии: Шаблон: Infobox , а затем вы найдете несколько примеров, например, Шаблон: Infobox writer

Обновление: если вы имеете в виду Navboxes, то см. Эту информацию .

0 голосов
/ 26 мая 2017

Используя MediaWiki, вы можете просмотреть информационный блок справа от страницы Википедии, используя эту ссылку ниже.Как видите, формат в формате JSON (можно изменить), и, изменив слово «водород» на нужный вам заголовок, вы получите страницу с информационным блоком.

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

0 голосов
/ 22 июля 2015

А как насчет использования режима редактирования? Вы можете просто начать с правильного TextArea (большую часть времени содержит id="wpTextBox1") и проанализировать содержимое этого TextArea ... URL, который я использовал, чтобы выяснить это, был (Примечание: раздел = 0):

https://de.wikipedia.org/w/index.php?title=Pelephone&action=edit&section=0

Привет

0 голосов
/ 28 июля 2010

В нашем проекте мы используем запросы для извлечения данных из викисловаря, например:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fen.wiktionary.org%2Fwiki%2Flife%22%20and%20xpath%3D'%2F%2Fdiv%5B%40id%3D%22bodyContent%22%5D'&format=xml&diagnostics=false&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=recwiki

У меня нет полного понимания этого, но это работает.Выходной результат может быть отфильтрован с использованием jquery или чего-то еще.

...