`
john2007
  • 浏览: 77837 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

利用wikipedia 的API实现对其内容的查询

阅读更多

wikipedia提供了api可以供我们对其内容进行操作。其API文档地址为:

http://en.wikipedia.org/w/api.php

 

列举一些常见用法:

1、全文搜索

http://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=fluoxetine

srsearch为要检索的内容

 

结果:

<?xml version="1.0"?>
<api>
  <query>
    <searchinfo totalhits="224" />
    <search>
      <p ns="0" title="Fluoxetine" snippet="&lt;span class=&#039;searchmatch&#039;&gt;Fluoxetine&lt;/span&gt; (also known by the tradenames Prozac, Sarafem) is an antidepressant  of the selective serotonin reuptake inhibitor  (SSRI) class &lt;b&gt;...&lt;/b&gt; " size="53978" wordcount="7052" timestamp="2010-10-31T23:22:00Z" />
      <p ns="0" title="Olanzapine/fluoxetine" snippet="The drug  combination olanzapine/&lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt; (trade name Symbyax, created by Eli Lilly and Company ) is a single capsule containing the  &lt;b&gt;...&lt;/b&gt; " size="5703" wordcount="629" timestamp="2010-09-21T09:10:34Z" />
      <p ns="0" title="Sertraline" snippet="Evidence suggests that sertraline may work better than &lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt;  (Prozac) for some subtypes of depression.  Sertraline is highly  &lt;b&gt;...&lt;/b&gt; " size="104510" wordcount="13933" timestamp="2010-10-28T22:13:04Z" />
      <p ns="0" title="Antidepressant" snippet="The first such compound to be patented was zimelidine  in 1971, while the first released clinically was indalpine . &lt;span class=&#039;searchmatch&#039;&gt;Fluoxetine&lt;/span&gt;  was  &lt;b&gt;...&lt;/b&gt; " size="128712" wordcount="17532" timestamp="2010-10-30T08:05:06Z" />
      <p ns="0" title="Selective serotonin reuptake inhibitor" snippet="four newer antidepressants (including the SSRIs paroxetine  and &lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt; , and two non-SSRI antidepressants nefazodone  and venlafaxine ).  &lt;b&gt;...&lt;/b&gt; " size="78327" wordcount="10398" timestamp="2010-11-01T00:11:30Z" />
      <p ns="0" title="Paroxetine" snippet="Unlike two other popular SSRI antidepressants, &lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt;  and sertraline , paroxetine is associated with clinically significant weight  &lt;b&gt;...&lt;/b&gt; " size="48886" wordcount="6491" timestamp="2010-10-31T23:11:12Z" />
      <p ns="0" title="Venlafaxine" snippet="Its efficacy is similar to or better than sertraline  (Zoloft) and &lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt;  (Prozac), depending on the criteria and rating scales used &lt;b&gt;...&lt;/b&gt; " size="49655" wordcount="6574" timestamp="2010-11-01T00:38:00Z" />
      <p ns="0" title="Olanzapine" snippet="Olanzapine (trade names Zyprexa, Zalasta, Zolafren, Olzapin, Oferta, Zypadhera or in combination with &lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt;  Symbyax ) is an atypical  &lt;b&gt;...&lt;/b&gt; " size="34028" wordcount="4540" timestamp="2010-10-30T17:45:42Z" />
      <p ns="0" title="Prozac (disambiguation)" snippet="Prozac  is a proprietary name for the antidepressant drug &lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt;. Prozac may also refer to:  Prozac+ , an Italian punk band &lt;b&gt;...&lt;/b&gt; " size="581" wordcount="78" timestamp="2010-04-23T20:24:31Z" />
      <p ns="0" title="SSRI discontinuation syndrome" snippet="paroxetine  having the highest number of withdrawal syndrome reports and &lt;span class=&#039;searchmatch&#039;&gt;fluoxetine&lt;/span&gt;  the highest number of drug dependence reports; the note &lt;b&gt;...&lt;/b&gt; " size="41099" wordcount="5444" timestamp="2010-09-23T06:19:55Z" />
    </search>
  </query>
  <query-continue>
    <search sroffset="10" />
  </query-continue>
</api>

 

2、列举wikipedia 的 category:

http://en.wikipedia.org/w/api.php?action=query&list=allcategories&acprefix=drug&aclimit=10

返回10条以drug开头的category;

结果:

<?xml version="1.0"?>
<api>
  <query>
    <allcategories>
      <c xml:space="preserve">Drug-induced Suicide</c>
      <c xml:space="preserve">Drug-realted suicides</c>
      <c xml:space="preserve">Drug-related Films</c>
      <c xml:space="preserve">Drug-related Suicides</c>
      <c xml:space="preserve">Drug-related death in California</c>
      <c xml:space="preserve">Drug-related deaths</c>
      <c xml:space="preserve">Drug-related deaths by country</c>
      <c xml:space="preserve">Drug-related deaths in Alabama</c>
      <c xml:space="preserve">Drug-related deaths in Alaska</c>
      <c xml:space="preserve">Drug-related deaths in Arizona</c>
    </allcategories>
  </query>
  <query-continue>
    <allcategories acfrom="Drug-related deaths in Arkansas" />
  </query-continue>
</api>

 3、返回具有相应title页面的timestamp|user|comment|content 信息;

 

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=api&rvprop=timestamp|user|comment|content

 

结果:

<?xml version="1.0"?>
<api>
  <query>
    <pages>
      <page pageid="27697087" ns="0" title="API">
        <revisions>
          <rev user="Graham87" timestamp="2010-06-13T08:41:17Z" comment="Protected API: restore protection ([edit=sysop] (indefinite) [move=sysop] (indefinite))" xml:space="preserve">#REDIRECT [[Application programming interface]]{{R from abbreviation}}</rev>
        </revisions>
      </page>
    </pages>
  </query>
</api>

 4、解析页面:

http://en.wikipedia.org/w/api.php?action=parse&format=xml&page=fluoxetine

 

用上面的查询返回的[content]是wikipedia的标记格式,这个api返回的是html格式的文本:

 

可以用xpath="api/parse/text" 返回html内容。

 

* action=parse *
  This module parses wikitext and returns parser output

This module requires read rights.
Parameters:
  title          - Title of page the text belongs to
                   Default: API
  text           - Wikitext to parse
  summary        - Summary to parse
  page           - Parse the content of this page. Cannot be used together with text and title
  redirects      - If the page parameter is set to a redirect, resolve it
  oldid          - Parse the content of this revision. Overrides page
  prop           - Which pieces of information to get.
                   NOTE: Section tree is only generated if there are more than 4 sections, or if the __TOC__ keyword is present
                   Values (separate with '|'): text, langlinks, categories, links, templates, images, externallinks, sections, revid, displaytitle, headitems, headhtml
                   Default: text|langlinks|categories|links|templates|images|externallinks|sections|revid|displaytitle
  pst            - Do a pre-save transform on the input before parsing it.
                   Ignored if page or oldid is used.
  onlypst        - Do a PST on the input, but don't parse it.
                   Returns PSTed wikitext. Ignored if page or oldid is used.
Example:
  api.php?action=parse&text={{Project:Sandbox}}

分享到:
评论

相关推荐

    wikipedia的API调用案例

    当一个查询返回的数据量过大时,可以通过`continue`参数实现分页。例如,设置`limit`参数限制每次返回的结果数量: ``` https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=编程&limit=10 ``` ...

    Python库 | Wikipedia-API-0.3.6.tar.gz

    使用Wikipedia-API库,开发者可以实现以下功能: 1. 搜索条目:根据关键词搜索维基百科条目,获取相关结果。 2. 获取条目内容:请求特定条目的完整内容或者摘要,包括标题、文本、链接等信息。 3. 检索信息框:提取...

    维基百科api调用实例

    综上所述,通过Java的`httpclient`和`htmlparser`,我们可以实现对维基百科API的有效调用和数据解析,从而在各种应用程序中利用其丰富的信息资源。在实践中,应关注API的使用规范和限制,确保高效且合法地获取和利用...

    wikipedia.org:@xyussanx 对 www.wikipedia.org 的 API 实现

    维基百科,一个全球性的在线百科全书,提供了丰富的公开数据,包括文章内容、元数据等,可以通过其API进行检索和使用。为了更好地理解和利用这个资源,我们需要了解API的基本概念以及如何在PHP环境中设置和执行API...

    react-search-widget:一个React应用程序,它使用Wikipedia API执行搜索并使用Google翻译API翻译文本

    "react-search-widget"项目展示了如何利用React构建一个功能丰富的应用,结合Wikipedia API实现搜索功能,借助Google翻译API实现文本翻译。通过学习这个项目,开发者可以深化对React组件化开发、状态管理、事件处理...

    wikipedia miner

    工具包通常提供API,允许开发者通过编程方式调用其功能,集成到更大的数据分析流程中。 9. **应用实例**: 例如,学者可以使用Wikipedia Miner分析某一领域的研究趋势,企业可以挖掘产品或品牌的相关信息,教育者...

    PyPI 官网下载 | wikipedia2vecsm-0.2.1.tar.gz

    Wikipedia2Vecsm虽然不是直接与Zookeeper或云原生相关的工具,但其处理大量文本数据的能力可能在云环境中得到充分利用,尤其是在需要分布式计算和存储的情况下。 在Python生态系统中,这样的库可以广泛应用于自然...

    Wiki-API:这是一个宁静的Wikipedia API

    开发者可以下载这个项目,了解其内部结构,学习如何使用API,甚至可以根据自己的需求对其进行定制或改进。 在实际应用中,JavaScript开发者通常会使用异步请求库,如Axios或fetch,来调用Wiki-API。API的调用可能...

    pyda---Python-Digital-Assistant:Wolfram Alpha和Wikipedia的api在Python上的小实现

    PyDA(Python Digital Assistant)是一个利用 Python 实现的数字助手,它整合了 Wolfram Alpha 和 Wikipedia 的 API,能够为用户提供信息查询和计算功能。下面我们将详细探讨这两个 API 的使用和实现。 **Wolfram ...

    Wikipedia-Search-Application:由HTML,SASS,JavaScript和Wikipedia API组成的出色且标准的搜索应用程序

    5. **前端开发流程**:从HTML布局到CSS美化,再到JavaScript实现交互,以及如何利用API获取远程数据。 6. **版本控制**:如Git,用于追踪代码变更、协作开发。 7. **项目结构**:良好的文件组织,有利于团队协作和...

    nim-wikipedia:Wikipedia和Wikimedia异步API库和应用程序

    **nim-wikipedia** 是一个基于 **Nim** 语言编写的库和应用程序,它提供了对 **Wikipedia** 和 **Wikimedia** 异步API的访问。这个库的主要目的是方便开发者和研究人员高效、低延迟地获取和处理维基百科及其相关的...

    RESTful-Flask-Api:Flask Api用于从Wikipedia提取数据

    本项目“RESTful-Flask-Api”正是利用Flask来构建一个RESTful API,用于从Wikipedia获取数据。 **RESTful原则** RESTful设计强调资源的概念,通过HTTP协议的动词(GET, POST, PUT, DELETE等)来操作资源。在我们的...

    jwpl API 文档

    jwpl(Java Wikipedia Library)API 是一个用于处理维基百科数据的 Java 库。它提供了一系列工具和类来帮助开发者从维基百科中提取、处理和分析数据。由于其在特定领域的独特功能和应用价值,虽然用户群体相对较小,...

    instant-wikipedia:即时Wikipedia搜索内容摘要

    为了实现“即时Wikipedia”功能,开发者可能还利用了维基百科提供的开放数据接口(如MediaWiki API),这是一个允许外部应用程序获取和操作维基百科内容的工具。通过这个接口,开发者可以高效地获取条目信息,包括...

    Wikipedia-Android:仅使用Android框架API

    本文将深入探讨Wikipedia-Android如何巧妙地运用Android框架API,以实现其主要功能。 首先,Android的Activity组件是应用程序的核心,Wikipedia-Android中可能包含多个Activity,分别对应不同的界面和功能,如主页...

    WikipediaKit:适用于macOS,iOS,watchOS和tvOS上的Swift的Wikipedia API客户端框架

    **WikipediaKit** 是一个专为Apple平台设计的开源Swift框架,它允许开发者方便地与维基百科(Wikipedia)的API进行交互。这个框架支持macOS、iOS、watchOS和tvOS,使得在这些平台上获取和展示维基百科内容变得简单而...

    Python库 | wikipedia_histories-0.0.6.tar.gz

    `wikipedia_histories`库的核心功能在于其对维基百科API的封装。维基百科提供了丰富的RESTful API,允许开发者获取页面的元数据、历史记录等信息。此库简化了这一过程,提供了一个简洁的接口,使得Python开发者能够...

    people-in-space:一个Web应用程序,显示从open-notify和Wikipedia的api收集的宇航员信息

    API是一组预先定义的函数,允许开发者通过调用这些函数来实现特定功能,如获取数据或执行操作。在这个案例中,open-notify API提供了关于宇航员在太空中的实时信息,而Wikipedia API则提供了丰富的宇航员背景资料和...

    wikipedia 架构

    - **外部存储(External Storage)**:除了本地数据库之外,维基百科还利用外部存储解决方案来扩展其存储能力。 #### 七、查询优化 针对数据库查询,维基百科采取了一系列优化措施,包括但不限于: - **查询分割...

    Wikipedia_API

    这个项目是利用维基百科API来获取新泽西维基百科页面上的所有图像,并在网页的DOM(Document Object Model)中展示出来。 **JavaScript** JavaScript是一种广泛使用的解释型编程语言,主要应用于客户端网页开发,...

Global site tag (gtag.js) - Google Analytics