如何使用 pywikibot 在维基百科上查找子类别和子页面?
How to find subcategories and subpages on wikipedia using pywikibot?
我想获取本网站““男性名字”类别中的页面”部分中的所有 (87) 个子类别和所有页面 (200):
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
class 而不是 Page
class。你必须创建它非常相似:
>>> import pywikibot
>>> site = pywikibot.Site("en", "wikipedia")
>>> cat = pywikibot.Category(site, 'Masculine_given_names')
类别 class 有其他方法,请参阅 documentation 了解更多信息和可用参数。 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()
我想获取本网站““男性名字”类别中的页面”部分中的所有 (87) 个子类别和所有页面 (200): 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
class 而不是 Page
class。你必须创建它非常相似:
>>> import pywikibot
>>> site = pywikibot.Site("en", "wikipedia")
>>> cat = pywikibot.Category(site, 'Masculine_given_names')
类别 class 有其他方法,请参阅 documentation 了解更多信息和可用参数。 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()