如何按类别从维基百科中删除数据?

时间:2015-11-10 11:21:39

标签: python wikipedia

我想只使用维基百科的医疗数据进行分析。我使用python进行抓取。 我使用这个库在查询中按字搜索:

import wikipedia

import requests
import pprint
from bs4 import BeautifulSoup
wikipedia.set_lang("en")
query = raw_input()
WikiPage = wikipedia.page(title = query,auto_suggest = True)
cat = WikiPage.categories
for i in cat:
    print i

并获取类别。

但是,我的问题反之亦然:

我想提供类别,例如:健康或医学术语,并获取此类型的所有文章。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

编辑:实际答案

API:Categorymembers,它记录了用法,参数并提供了“如何检索给定类别中的页面列表,按标题排序”的示例。它不会让你不必自己下载类别树(参见下面),但是你得到了一个很好的入口点和机器可读的结果。

旧答案:相关信息

Help:Category页面上提供了一个非常简短的指针,部分 Searching for articles in categories

  

除了浏览类别的层次结构外,还有   可以使用搜索工具查找特定的特定文章   类别。 要搜索特定类别中的文章,请键入   incategory:搜索框中的“CategoryName”。

     

可以添加“OR”以将一个类别的内容与   另一个的内容。例如,输入

    incategory:"Suspension bridges" OR incategory:"Bridges in New York City"
     

返回属于其中一个(或两个)类别的所有页面,   就在这里。

     

请注意,使用搜索查找类别将找不到哪些文章   已使用模板进行分类。 此功能也没有   返回子类别中的页面。

要解决子类别问题,可以使用页面Special:CategoryTree。但是,该页面并未指出明显的文档。因此,我认为必须在页面源中手动搜索<form>字段才能创建编程API。