You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SQL dumps提取维基百科信息框与模板内的页面链接

从维基百科SQL dumps提取信息框内页面链接的方案

核心用到的数据表

  • page:先定位目标页面(比如DNA)的page_id和标题,这是所有关联操作的基础。
  • templatelinks:用来查找目标页面调用的信息框模板——信息框本身属于模板,通过目标页面的page_id关联tl_from字段,就能查到页面使用的信息框模板名称。
  • pagelinks:模板内部的所有页面链接都存在这个表中,但需要用信息框模板自身的page_id作为pl_from筛选条件,才能精准提取信息框里的链接。

具体操作步骤

  1. 查询目标页面的ID(以DNA页面为例):

    SELECT page_id FROM page WHERE page_title = 'DNA' AND page_namespace = 0;
    

    (注:page_namespace=0对应普通文章的主命名空间,确保筛选的是目标文章页面)

  2. 用目标页面ID找到它调用的信息框模板:

    SELECT tl_title FROM templatelinks WHERE tl_from = [第一步查到的目标页面ID] AND tl_title LIKE 'Infobox%';
    

    (用Infobox%匹配常规信息框模板,若遇到特殊命名的信息框,可调整匹配规则)

  3. 查询该信息框模板的页面ID(模板都存储在命名空间10):

    SELECT page_id FROM page WHERE page_title = [第二步查到的信息框模板名] AND page_namespace = 10;
    
  4. 提取信息框内的所有页面链接:

    SELECT pl_title FROM pagelinks WHERE pl_from = [第三步查到的模板page_id] AND pl_namespace = 0;
    

    (pl_namespace=0仅筛选主命名空间的文章链接,排除讨论页、模板页等无关内容)

补充说明

你之前在templatelinks里找不到链接是正常的——这个表仅记录页面调用了哪些模板,不存储模板内部的链接内容。模板里的页面链接都存在pagelinks中,但必须以模板自身的page_id作为筛选条件,而非目标页面的ID。如果目标页面调用了多个信息框,第二步会返回多个模板名称,逐个处理即可。

内容的提问来源于stack exchange,提问作者user305883

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:01:51