gpt4 book ai didi

python - 如何使用 MediaWiki API 获取子子类别中的文章数量

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:56 24 4
gpt4 key购买 nike

我想生成一个 xml/json,显示维基百科中特定类别中所有子子类别的类别信息(页面和子目录数)。这需要我解析数据层次结构中的 2 个级别,如类别 > 子类别列表 > 子子类别列表 > 显示每个子子类别的文章数量。

使用维基百科 API,这为我提供了我正在寻找的一级子类别:

http://en.wikipedia.org/w/api.php?action=query&format=json&generator=categorymembers&gcmtitle=Category:People_by_nationality_and_occupation&gcmlimit=30&gcmprop=ids|title&prop=categoryinfo&continue=

这是我正在运行的脚本,它为我提供了子子类别的字典,但我无法显示页数(类别信息)。我怎样才能解决这个问题?

from wikitools import wiki, category, api

def get_category_members (category_name, depth, lang='en'):

articles = {}
if depth < 0:
return articles

#Begin crawling articles in category
results = wikipedia_query({'list':'categorymembers',
'cmtitle': category_name,
'cmtype' : 'subcat',
'cmlimit': '300',
'action' : 'query',
'prop' : 'categoryinfo'}, lang)
return results
if 'categorymembers' in results.keys() and len(results['categorymembers']) > 0:
for i, page in enumerate(results['categorymembers']):
article = {page['title'] : 'categoryinfo'}
articles.update(article)
return articles

最佳答案

如果这是针对像维基百科这样的维基媒体项目,那么依赖 Magnus Manske 的类别递归工具可能会更容易,例如 catscan (参见code logic

据我所知,您的代码不会创建 Wiki 对象,也不会创建 APIRequest,也不会在子类别中递归迭代。请参阅我使用 categorymembers as generator 的示例用于提取有关类别成员的更多信息(但不是在子类别中递归)。

关于python - 如何使用 MediaWiki API 获取子子类别中的文章数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com