我如何尽可能轻松地从Wikipedia中获取这些记录?我需要在json文件中为这些区域中的每个区域显示名称:https://en.wikipedia.org/wiki/Category:Surnames_by_language
示例
[
{
name: "Agalliu",
language: "Albanian"
},
{
name: "Agolli",
language: "Albanian"
}
...
]
我正在使用Angular5。
另外:使用数据来自维基百科的信息来创建数据库是否合法?
谢谢!
答案 0 :(得分:1)
我不使用Angular 5或打字稿,因此在技术层面上我不知道如何开发所需的特定代码,但我认为您需要的是看看{{3} }。 HttpClient documentation可能会帮助您找到一些已经开发的模块。 Angular似乎有据可查,非常好。所以我的回答是理论性的,而不是技术性的。
关于您要在JSON文件中获取的数据,姓氏和此姓氏的语言,如果您只想使用类别中的页面,我认为最好的方法可能是提取页面标题每个页面以及从子类别的标题分析的语言。如果您想这样做:
Irish-language feminine surnames
和Irish-language masculine surnames
应该被清除为爱尔兰语。如果您将拥有另一个JSON值来保留类别的标题,那将是很好的,因为它将帮助您将来恢复URL Hoti (surname)
之类的值。当然,就像关于类别标题的最后一点一样,我建议您创建另一个JSON值以保留页面标题,并保留它的标题,因为可能需要的话。我认为执行此操作的另一种好方法是查询Wikidata,因为有许多页面的结构非常不同,并且所有页面都没有一个通用的信息框,因此可以更轻松地获取数据,因为您可以能够抓取特定字段(语言或任何可能的语言)。但是,从Wikidata中提取它,从类别中也没有缺点:
surname (multiple languages)
。 看看Wikidata Query Service和MediaWiki API。
是的,这是完全合法的。您要做的就是尊重许可证。在英语维基百科的情况下,它是根据知识共享署名-相同方式共享3.0进行许可的。该许可证允许您以商业和非商业方式重用和更改内容,但是您必须归属作者并以相同的许可证共享衍生产品。
对于Wikidata,项目和属性(Q:*和P:*)的名称空间中的所有内容都在公共领域中,并标记为CC0,这是一个知识共享工具,用于显示作品在公共领域中。您可以如何处理数据?无论您想要什么。
我建议您阅读Wikidata:Data Access和Creative Commons' FAQ about the CC0。