所以我试图抓取类别页面的类别标题下的所有子类别和页面:“类别:基于类的编程语言”位于:
https://en.wikipedia.org/wiki/Category:Class-based_programming_languages
我找到了一种使用 url 和 mediawiki API 来执行此操作的方法:Categorymembers。这样做的方法是:
- 基础:
en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Class-based%20programming%20languages&format=json&cmlimit=500
- 基础:
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 和 json,我导入了 json 格式的维基百科 url 文件,并简单地打印了它的类别。这是我用来获取子类别的代码:
pages = urllib.request.urlopen("https://en.wikipedia.org/w/api.phpaction=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'])
您可以对类别中的页面执行相同的操作。感谢 Nemo 试图帮助我!
关于python - 如何使用 Python 抓取类别维基百科页面类别中的子类别和页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495405/