代码之家  ›  专栏  ›  技术社区  ›  Vueer

获取特定的Wikipedia列表

  •  1
  • Vueer  · 技术社区  · 6 年前

    https://en.wikipedia.org/wiki/Category:Surnames_by_language

    例子

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

    我和安格拉尔一起工作。

    提前谢谢!

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ivanhercaz 田咖啡    6 年前

    我既不使用Angular 5也不使用typescript,因此我不知道如何在技术层面开发您需要的特定代码,但我认为您需要的是查看 HttpClient documentation . This search in GitHub 可能会帮助你找到一些已经开发的模块。角度看起来很有记录,这很好。因此,我的答案更多的是理论上的,而不是技术上的。

    关于你想在JSON文件中得到的数据,姓氏和这个姓氏的语言,如果你只想处理类别中的页面,我想最好的方法可能是我提取每个页面的页面标题,并从所分析的子类别标题中提取语言。如果你想这么做:

    • 你将需要检查和清理类别的标题了。例如。 Irish-language feminine surnames‎ Irish-language masculine surnames‎
    • 您需要检查每个姓氏的页面标题是否需要清理,因为如果不清理,可能会得到如下值 Hoti (surname)

    我认为另一个很好的方法是查询Wikidata,因为有很多页面的结构非常不同,并且没有一个通用的信息框在所有这些页面中,这将使获取数据变得更容易,因为你可以刮取一个特定的字段(语言或任何它可能是什么)。但是,从Wikidata和no中提取也有缺点:

    • 如果您只想使用您提到的类别中的姓氏/页面( Surnames by language
    • 可能是每个姓氏的许多项目都没有特定的语言。可能它还没拿到房产 native label (P1705) 或者它可能有财产但有价值 surname (multiple languages)
    • 当然,它可能有一个更大的学习曲线,因为您可能需要学习SPARQL和 Wikidata Query Service .

    看一看 MediaWiki API Wikidata:Data Access .

    “我用来自维基百科的信息创建数据库合法吗?”

    在Wikidata的例子中,所有项目和属性的名称空间(Q:*和P:*)都在公共域中,并标记为CC0,这是一个知识共享工具,用于显示作品在公共域中。你能用这些数据做什么?你想要什么都行。

    Creative Commons' FAQ about the CC0 legal code of the Creative Commons Attribution-ShareAlike 3.0 Unported .