Получить конкретный список Википедии - PullRequest
0 голосов
/ 27 сентября 2018

Как я могу получить эти записи из Википедии как можно проще?Мне нужно в файле json для каждой из этих областей отображаемые имена: https://en.wikipedia.org/wiki/Category:Surnames_by_language

Пример

[
 {
  name: "Agalliu",
  language: "Albanian"
 },
 {
  name: "Agolli",
  language: "Albanian"
 }
 ...
]

Я работаю с Angular5.

Также: Естьдля меня законно создать базу данных с информацией о том, что данные из Википедии?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 сентября 2018

Я не работаю ни с Angular 5, ни с машинописным шрифтом, поэтому на техническом уровне я не знаю, как разработать конкретный код, который вам нужен, но я думаю, что вам нужно, чтобы взглянуть на HttpClientдокументация . Этот поиск в GitHub может помочь вам найти уже разработанный модуль.Angular кажется очень хорошо задокументированным, это очень приятно.Поэтому мой ответ скорее теоретический, чем технический.

О данных, которые вы хотите получить в файле JSON, фамилии и языке этой фамилии, если вы хотите работать только со страницами в категории, я думаю,Наилучшим способом я мог бы извлечь заголовок страницы каждой страницы и язык из заголовка проанализированной подкатегории.Если вы хотите сделать это:

  • Вам нужно будет также проверить и очистить заголовок категорий.Например, Irish-language feminine surnames‎ и Irish-language masculine surnames‎ должны быть очищены как ирландцы.Было бы хорошо, если бы у вас было другое значение JSON для сохранения заголовка категории, потому что это поможет вам восстановить URL в будущем
  • Вам нужно будет проверить, соответствует ли заголовок страниц каждомуНеобходимо очистить фамилию, потому что если вы ее не очистите, вы, вероятно, получите некоторые значения, например Hoti (surname).Конечно, как и в последнем пункте, касающемся заголовка категории, я рекомендую вам создать другое значение JSON, чтобы сохранить заголовок страницы и сохранить его из-за возможного случая, когда он вам понадобится.

Я думаю, что еще один хороший способ сделать это - запрос к Wikidata, потому что есть много страниц со структурами, которые сильно отличаются, и нет информационного блока, обобщенного во всех них, что облегчило бы получение данных, потому что вы могли быочистить определенное поле (язык или что бы то ни было).Однако извлечение его из Викиданных и отсутствие категории также имеет недостатки:

  • Если вы хотите работать только с фамилиями / страницами в указанной вами категории ( Фамилии по языкам ), работа с Wikidata не возможна, потому что Wikidata, вероятно, имеет большой набор данных о ней, и вы получите больше фамилий, чем в категории.
  • Вероятно, что многие элементы каждой фамилии неэто не определенный язык.Возможно, у него нет свойства нативная метка (P1705) или оно может иметь свойство, но со значением surname (multiple languages).
  • И, конечно, он может иметь большую кривую обучения, потому что, вероятно, вам нужно будет узнать о SPARQL и Wikidata Query Service .

Взгляните на MediaWiki API и Wikidata: доступ к данным .

«Законно ли для меня создание базы данных с информацией о том, что данные взяты из Википедии?»

Да, это совершенно законно.Что вы должны сделать, это уважать лицензию.В случае английской Википедии это лицензирование в соответствии с Creative Commons Attribution-ShareAlike 3.0 Unported.Эта лицензия позволяет вам повторно использовать и изменять контент как коммерческим, так и некоммерческим способом, но вы должны указать авторство и поделиться производными с одной лицензией.

В случае Wikidata все вПространства имен предметов и свойств (Q: * и P: *) находятся в свободном доступе и помечены как CC0, инструмент Creative Commons, чтобы показать, что произведение находится в общественном достоянии.Что вы можете сделать с данными?Что бы вы не хотели.

Я рекомендую вам прочитать FAQ по Creative Commons о CC0 и правовой код Creative Commons Attribution-ShareAlike 3.0 Unported .

...