代码之家  ›  专栏  ›  技术社区  ›  grenade

Wikipedia API是否支持搜索特定模板?

  •  12
  • grenade  · 技术社区  · 15 年前

    是否可以查询包含特定模板的文章的Wikipedia API? The documentation Template:Persondata . 在那之后,我希望能够检索到特定的模板,以便为 openancestry.org

    下面的查询显示,Albert Einstein页面包含Persondata模板,但它不返回模板的内容,而且我不知道如何获取包含该模板的页面标题列表。 http://en.wikipedia.org/w/api.php?action=query&prop=templates&titles=Albert%20Einstein&tlcontinue=736|10|ParmPart

    返回:

    <api>
     <query>
      <pages>
       <page pageid="736" ns="0" title="Albert Einstein">
        <templates>
         ...
         <tl ns="10" title="Template:Persondata"/>
         ...
        </templates>
       </page>
      </pages>
     </query>
     <query-continue>
      <templates tlcontinue="736|10|Reflist"/>
     </query-continue>
    </api>
    

    3 回复  |  直到 15 年前
        1
  •  7
  •   lambshaanxy    15 年前

    你可以使用 embeddedin 查询以查找包含模板的所有页面:

    curl 'http://en.wikipedia.org/w/api.php?action=query&list=embeddedin&eititle=Template:Persondata&eilimit=5&format=xml'
    

    这让你:

    <?xml version="1.0"?>
    <api>
      <query>
        <embeddedin>
          <ei pageid="307" ns="0" title="Abraham Lincoln" />
          <ei pageid="308" ns="0" title="Aristotle" />
          <ei pageid="339" ns="0" title="Ayn Rand" />
          <ei pageid="340" ns="0" title="Alain Connes" />
          <ei pageid="344" ns="0" title="Allan Dwan" />
        </embeddedin>
      </query>
      <query-continue>
        <embeddedin eicontinue="10|Persondata|595" />
      </query-continue>
    </api>
    

    见 full docs

    编辑 使用 查询而不是 backlinks (不包括模板内含物)

        3
  •  0
  •   Tgr    9 年前

    接受的答案解释了如何使用特定模板列出页面,但如果需要 搜索 对于使用模板的页面,可以使用 hastemplate: https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=hastemplate:NPOV%20physics

    推荐文章