我只想获取有关视频游戏的数据(如Duke Nukem 3D,Atari Games等)。但是看看他们期望你如何查询以及其他人如何做到这一点,我无法完全理解如何去做。我现在已经搜索了几天如何做,但空出来了。
我也查看了他们的API,但他们希望你如何创建查询字符串并没有真正帮助我。我试着这样做:
https://en.wikipedia.org/w/api.php?action=query&prop=categories&format=json&titles=Video_Game
但它给了我这个回报:
{
"batchcomplete":"",
"query":{
"normalized":[
{
"from":"Video_Game",
"to":"Video Game"
}
],
"pages":{
"361741":{
"pageid":361741,
"ns":0,
"title":"Video Game",
"categories":[
{
"ns":14,
"title":"Category:Redirects from other capitalisations"
},
{
"ns":14,
"title":"Category:Unprintworthy redirects"
}
]
}
}
}
}
我怀疑它只是找到了视频游戏的页面而不是所有关于视频游戏的页面。我可能只是不明白如何从维基百科中获取数据。
任何帮助?
答案 0 :(得分:1)
英语维基百科中有关视频游戏的所有页面都包含名为Infobox video game的模板,因此您只需使用Wikipedia API查询属性transcludedin
即可获取所有这些内容:
https://en.wikipedia.org/w/api.php?action=query&prop=transcludedin&tilimit=500&titles=Template:Infobox_video_game
答案 1 :(得分:0)
首先,Video Game是redirect到Video game(维基百科中的大小写很重要,除了标题的第一个字符外)所以它没有太多有用的信息。您可以使用redirects=1
API参数自动解决重定向。
另一个问题是,您在询问API视频游戏文章的类别。您可能想要的是询问视频游戏类别中的文章。这就像action=query&list=categorymembers&cmtitle=Category%3AVideo+games
。
第三个问题是类别形成图表,因此通常大多数相关内容都在子类别中,而不是主要类别本身。 Category:Video games就是这种情况。因此,即使您正确地检索了文章列表,它也不会特别有用。
有多种方法可以获得更有用的相关文章列表。
在这种情况下,最好使用信息框。