如何从维基百科SQL Dump提取Outline、List类内容页面?对应Dump是哪些?
问题解决方案
1. 提取Outline、List类内容页面的pageid或标题的方法
- 页面解析+API查询:先解析Wikipedia:Contents页面,提取其中标注为Outline、List的条目标题,再通过MediaWiki API批量查询这些标题对应的pageid。具体可使用
action=query接口,传入titles参数(多个标题用竖线分隔),搭配prop=info参数获取pageid信息。 - 分类系统筛选:Outline类页面基本都归属“Outlines”分类,List类页面多属于“Lists of lists”或各主题下的Lists分类。通过API的
categorymembers查询接口,指定对应分类标题,即可获取该分类下所有页面的标题和pageid;如果有数据库访问权限,可直接关联page表与categorylinks表,筛选cl_to字段为目标分类名称的条目,提取pageid和标题。 - 标题关键词匹配:对于标题明确包含“Outline of”或“List of”的页面,可直接通过API或数据库的模糊查询筛选,比如数据库中用
WHERE page_title LIKE '%Outline_of%'或%List_of%(注意MediaWiki的标题存储格式是下划线替代空格)。
2. 包含此类信息的Dump
- 页面内容Dump:完整的多流页面Dump(如pages-articles-multistream.xml.bz2)包含所有主命名空间页面的标题和内容,可通过标题关键词匹配或解析内容中的分类标签来筛选目标页面。
- 分类链接Dump:categorylinks.sql.gz包含所有页面的分类关联数据,结合page.sql.gz(页面元数据Dump),可精准筛选归属Outline、List相关分类的页面条目,获取pageid和标题。
- 页面元数据Dump:page.sql.gz存储了所有页面的基本信息(包括pageid、标题、命名空间),可通过标题关键词模糊匹配筛选目标页面,但准确性依赖标题的规范命名。
内容的提问来源于stack exchange,提问作者user305883
相关产品推荐
相关产品推荐

