📜  wikipedia api (1)

📅  最后修改于: 2023-12-03 15:21:09.437000             🧑  作者: Mango

Wikipedia API介绍

Wikipedia是一个基于用户贡献的百科全书,它的API可以让开发者使用它的数据和内容来创建新的应用程序。Wikipedia API可以让开发者获取到各种不同的信息,包括文章、图片、分类、履历等。

开始使用

首先,你需要获得Wikipedia API的访问权限。请前往https://www.mediawiki.org/wiki/API:Main_page获取更多内容。

在获得访问权限之后,你可以通过访问如下URL来获取Wikipedia数据:

https://{language}.wikipedia.org/w/api.php?action={action}&format={format}&prop={properties}&titles={titles}&redirects={redirects}&formatversion={formatversion}

其中{language}为语言代码,例如en表示英语;{action}为API的操作,例如query表示查询操作;{format}表示API的返回格式,例如jsonxml{properties}表示要获取的属性,例如extracts表示文章文本;{titles}表示要获取文章的标题;{redirects}表示是否自动跟随重定向;{formatversion}表示返回的格式版本号。

示例

例如,以下URL可以获得Wikipedia英语版中关于“python”这个主题的文章摘要信息:

https://en.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&titles=Python_(programming_language)&redirects=true&formatversion=2
返回值

Wikipedia API返回的数据格式取决于请求中的{format}参数。如果使用json格式,那么它的返回值将是一个JSON对象,例如:

{
    "batchcomplete": "",
    "query": {
        "pages": [
            {
                "ns": 0,
                "title": "Python (programming language)",
                "extract": "<p><b>Python</b> is an interpreted high-level programming language for general-purpose programming. Created by Guido van Ro..."
            }
        ]
    }
}
接口文档

Wikipedia API的详细接口文档可以在https://www.mediawiki.org/wiki/API:Main_page上找到,其中包含了所有API的详细介绍和使用示例。

注意事项

在使用Wikipedia API时,需要注意以下事项:

  • 请求的频率应该足够慢以避免对服务造成过大的负载。
  • 请求的响应速度可能会受到网络延迟等因素的影响。
  • 在使用Wikipedia API时,应该遵循API的使用条款和条件,以免违反服务政策。
  • 某些API可能需要特定的访问权限才能够使用。
  • 返回的内容是根据不同的语言区分的,需要注意。

代码示例

以下是使用Python和Requests库访问Wikipedia API的示例代码:

import requests

URL = 'https://{language}.wikipedia.org/w/api.php?action={action}&format={format}&prop={properties}&titles={titles}&redirects={redirects}&formatversion={formatversion}'

def get_wikipedia_page(language, title):
    """
    获取Wikipedia页面信息
    """
    url = URL.format(
        language=language,
        action='query',
        format='json',
        properties='extracts',
        titles=title,
        redirects=True,
        formatversion=2
    )
    response = requests.get(url)
    if response.status_code == 200:
        return response.json()['query']['pages'][0]['extract']
    return None

if __name__ == '__main__':
    content = get_wikipedia_page('en', 'Python_(programming_language)')
    print(content)

在上述示例代码中,我们定义了一个get_wikipedia_page函数来访问Wikipedia API获取某个页面的信息。这个函数会返回Wikipedia页面的文本内容。