如何使用 Python 抓取类别维基百科页面的子类别和页面

2023-12-13

因此,我尝试抓取类别页面的类别标题下的所有子类别和页面:“类别:基于类的编程语言”,位于:

https://en.wikipedia.org/wiki/Category:基于类的编程语言

我已经找到了一种使用 url 和 mediawiki API 来做到这一点的方法:Categorymembers。这样做的方法是:

  • base: en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Class-based%20programming%20languages&format=json&cmlimit=500
  • base: en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Class-based%20programming%20languages&format=json&cmlimit=500&cmtype=subcat

但是,我找不到使用 Python 来完成此任务的方法。有人可以帮我从这里出去吗?

这是为了独立研究,我花了很多时间在这上面,但似乎无法弄清楚。此外,禁止使用 Beautifulsoup。感谢您的所有帮助!


好吧,经过更多的研究和学习,我找到了自己问题的答案。使用库urllib.request and json,我以 json 格式导入了 wikipedia url 文件,并以这种方式简单地打印了其类别。这是我用来获取子类别的代码:

pages = urllib.request.urlopen("https://en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Class-based%20programming%20languages&format=json&cmlimit=500&cmtype=subcat")
data = json.load(pages)
query = data['query']
category = query['categorymembers']
for x in category:
    print (x['title'])

您可以对类别中的页面执行相同的操作。感谢尼莫试图帮助我!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Python 抓取类别维基百科页面的子类别和页面 的相关文章

随机推荐