我需要检查Wikipedia文章是否为精选或非。如何使用Wikipedia API做到这一点? 如果不支持,是否有维基百科API函数来获取维基百科特色文章列表?
答案 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 badges(example),尽管repsonse格式有点模糊。
或者,您可以通过list=categorymembers
API模块检查精选文章类别,也可以通过prop=transcludedin
模块查看精选文章模板。