Python 用多个深度抓取维基百科子类别(页面)?

Python 用多个深度抓取维基百科子类别(页面)?,python,python-3.x,web-scraping,web-crawler,wikipedia,Python,Python 3.x,Web Scraping,Web Crawler,Wikipedia,如果在维基百科()中打开计算机科学类别,它将显示总共19个子类别()。现在,对于所有这些19子类别,如果我想只提取页面名称(页面标题)。例如,类别计算机科学中的页面有45页面,显示为项目符号,就在维基百科子类别列表的下方。现在,对于所有其他相关子类别,例如计算机科学的领域是一个包含3页面()的子类别。但是,它又有17个子类别(即深度1,考虑到遍历,即深度=1意味着我们是1深)。同样,算法和数据结构()有5个页面,人工智能()有333个页面,还有一些额外的类别和子类别跨越多个页面(见“人工智能”类

如果在维基百科()中打开
计算机科学类别
,它将显示总共
19个子类别()。现在,对于所有这些
19
子类别,如果我想
只提取
页面名称(页面标题)。例如,类别
计算机科学
中的页面有
45
页面,显示为
项目符号
,就在维基百科子类别列表的下方。现在,对于所有其他相关子类别,例如计算机科学的
领域
是一个包含
3
页面()的子类别。但是,它又有17个子类别(即深度1,考虑到遍历,即深度=1意味着我们是1深)。同样,
算法和数据结构
()有
5个
页面,
人工智能
()有
333个
页面,还有一些额外的
类别
子类别
跨越多个页面(见“人工智能”类别中的页面),共有37个类别和333页,像这样,这个列表会更深入。我们现在深入2。我需要的是提取深度为1和深度为2的遍历的所有页面(标题)。是否有任何算法可以实现同样的效果

例如:计算机科学的子类别区域又有一些(17)子类别,总页数为5+333+127+79+216+315+37+47+95+37+246+103+21+2+55+113+94页,考虑到所有(17)子类别。这是深度2,因为我切换了两次列表。类似地,对于基础根计算机科学,其余18个子类别()也需要合并相同的内容,深度为2

有没有办法做到这一点?显示和提取如此多的页面是很困难的,因为它将是巨大的。因此,10000页的最大阈值是绝对可以的


有没有办法做到这一点?非常感谢任何小小的帮助

有一个叫做PetScan的工具,由维基媒体实验室托管。您可以轻松地键入类别标题,然后选择要达到的深度,然后就完成了


另外,看看它是如何工作的

维基媒体实验室有一个叫做PetScan的工具。您可以轻松地键入类别标题,然后选择要达到的深度,然后就完成了


另外,了解它的工作原理

要开始,请查看浏览器附带的开发工具。e、 g.chrome有一个“网络”选项卡,显示展开每个部分时所进行的查询。您可以看到xml响应返回,这将帮助您确定要命中的端点。否则,wikipedia会提供(大型)数据转储,允许您自己获取数据,而不是对其站点进行爬网,并且根据您希望访问的深度进行使用。要开始使用,请查看浏览器附带的开发工具。e、 g.chrome有一个“网络”选项卡,显示展开每个部分时所进行的查询。您可以看到xml响应返回,这将帮助您确定要命中的端点。否则,wikipedia提供(大)数据转储,允许您自己获取,而不是对他们的站点进行爬网,并且根据您希望搜索的深度,使用起来会更好。当然,我会试试的!有趣。当然,我会试试的!