2016-02-17 5 views
-3

Если у вас есть страница в Википедии, например, для Coffee, я пытаюсь выяснить, как извлечь список всех ссылок (включая любые метаданные) на странице. На первый взгляд кажется, что это будет легко, так как большинство страниц перечисляют их все в разделе «Ссылки». Однако, когда вы просматриваете wikitext этих страниц, вы обнаружите, что ссылки являются указателем на шаблон ref, который, как я считаю, динамически генерирует их из всех элементов в тексте на странице.Как извлечь все справочные данные со страницы Википедии?

Когда я просматриваю wikitext из разделов текста, которые связаны с каждой ссылкой, я обнаруживаю, что они заключены в теги <ref></ref>. Содержимое этих тегов зависит от типа цитирования.

Таким образом, одна из стратегий заключалась бы в том, чтобы запросить весь контент страницы и выполнить мой собственный синтаксический анализ, чтобы найти все пары <ref></ref>. Тем не менее, я думаю, что должен быть способ сделать это в API-интерфейсе Mediawiki, который я не нахожу. Есть ли способ? Я предпочел бы вытащить все это из wikitext или чего-то другого, кроме последнего HTML, поскольку я ожидаю, что первое будет более стабильным.

ответ

1

Есть инструменты, которые способны работать с форматом википедия XML:

Это сообщение на некоторых hte инструменты для обработки свалок википедии: http://engineering.idioplatform.com/2016/02/18/wikipedia-toolkit.html

Другой posibiliy (возможно, даже проще) заключается в использовании викиданные:

1

Я не знаю, что информация именно вы ищете в <ref>-х годах, но если вам нужно только внешние ссылки, вы можете реально использовать MediaWiki API с действием "parse"

https://en.wikipedia.org/w/api.php?action=parse&page=Coffee&prop=externallinks 
Смежные вопросы