我想检索维基百科类别中的所有文章网址(我不需要整个文本)。
例如,如果我想获取以下类别的所有文章网址:https://en.wikipedia.org/wiki/Category:History ,最好的方法是什么?
是否有必要下载整个mysql转储并进行手动查询?
最佳答案
使用维基百科 API。
"query"行动,关于"categorymembers"列表,就是你想要的。列出类别中的页面的查询示例可能是:
请注意:
默认情况下,结果以显示 JSON 数据的格式化 HTML 形式返回。这纯粹是为了调试,而不是为了生产使用。传递
format=json
参数以从 API 返回未格式化的 JSON。 (还有许多其他格式可用;有关详细信息,请阅读文档。)此查询的结果已分页。您可以使用
cmlimit
参数增加页面大小,但最终您可能需要通过从结果中提取cmcontinue
值并将其传递到同名。该类别中的许多“页面”实际上是其他类别。无法递归列出某个类别及其包含的所有类别的内容,因为维基百科的类别不是层次结构。某些类别将包含包含它们的类别,或者包含不是严格子集的其他类别。 (维基百科的“类别”实际上是标签多于类别,但该名称已经足够古老,现在无法更改。)
关于mysql - 如何下载维基百科中某个类别内的所有页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119322/