我想只使用维基百科的医疗数据进行分析。我使用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
并获取类别。
但是,我的问题反之亦然:
我想提供类别,例如:健康或医学术语,并获取此类型的所有文章。
我该怎么做?
答案 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。