如何使用API​​检查维基百科文章是否特色?

时间:2017-10-13 10:58:03

标签: mediawiki wikipedia wikipedia-api

我需要检查Wikipedia文章是否为精选或非。如何使用Wikipedia API做到这一点? 如果不支持,是否有维基百科API函数来获取维基百科特色文章列表?

3 个答案:

答案 0 :(得分:2)

我不知道维基百科API功能是否可行。但是,它可以使用非常普通的Python代码来完成。

>>> from lxml import html
>>> import requests

获取列出所有精选文章的页面。

>>> page = requests.get('https://en.wikipedia.org/wiki/Wikipedia:Featured_articles').content

将其解析为搜索目的。

>>> tree = html.fromstring(page)

假设我们正在搜索名为' Melbourne Castle'的维基百科文章。

>>> wiki_title = 'Melbourne Castle'

查找具有此标题的所有链接。

>>> links = tree.xpath('.//a[@href="/wiki/%s"]'%wiki_title.replace(' ', '_'))

如果links是非空列表,则表示链接指向标题为“墨尔本城堡”的文章。已找到,然后打印一个合适的结果,或其他。

>>> if links:
...     links[0].text + ' is a featured article'
... else:
...     links[0].text + ' is NOT a featured article'
... 
'Melbourne Castle is a featured article'

答案 1 :(得分:1)

我刚刚找到了一种方法。我可以使用Categorymembers获取分类中的所有页面 https://www.mediawiki.org/wiki/API:Categorymembers

答案 2 :(得分:1)

可能最具语义和可移植性的方法是检查Wikidata badgesexample),尽管repsonse格式有点模糊。

或者,您可以通过list=categorymembers API模块检查精选文章类别,也可以通过prop=transcludedin模块查看精选文章模板。

相关问题