我想在";"类别中的页面";男性化的名字"本网站上的部分:https://en.wikipedia.org/wiki/Category:Masculine_given_names
我用以下代码进行了尝试:
import pywikibot
site = pywikibot.Site("en", "wikipedia")
page = pywikibot.Page(site, 'Category:Masculine_given_names')
print(list(page.categories()))
但是我只能在页面的最底部找到分类。如何获取此网站上的子类别和(子(页面?
如何获取给定类别的子类别和(子(页面
首先,您必须使用Category
类而不是Page
类。你必须创建非常相似的:
>>> import pywikibot
>>> site = pywikibot.Site("en", "wikipedia")
>>> cat = pywikibot.Category(site, 'Masculine_given_names')
Category类有其他方法,有关更多信息和可用参数,请参阅文档。例如,categoryinfo
属性简要概述了类别内容:
>>> cat.categoryinfo
{'size': 1425, 'pages': 1336, 'files': 0, 'subcats': 89}
该类别共有1425个条目,本案例共有1336页和89个子类别。
要获取所有子类别,请使用subcategories()
方法:
>>> gen = cat.subcategories()
注意,这是一个生成器。如下所示,您将获得上面categoryinfo
中的所有内容:
>>> len(list(gen))
89
要获取所有页面(文章(,您必须使用articles()
方法,例如
>>> gen = cat.subcategories()
猜猜相应的列表会有多少条目。
最后,有一种方法可以获取类别的所有成员,该类别包括页面、文件和子类别,称为members()
:
>>> gen = cat.members()