是否有任何API从维基页面获取图像

时间:2015-06-02 12:20:33

标签: python wikipedia dbpedia

我想从维基百科页面获取主图像,我有所有维基百科实体名称,我从中创建维基链接并从该页面获取主图像。

我试过

https://github.com/richardasaurus/wiki-apihttps://github.com/goldsmith/Wikipedia

但是,虽然页面包含图像,但这并不适用于所有页面。

from wikiapi import WikiApi
wiki = WikiApi()
wiki = WikiApi({ 'locale' : 'es'})
def getWikiImage(entity):
    results = wiki.find(entity)
    print results
    if len(results):
        article = wiki.get_article(results[0])
        print article.image
#getWikiImage("Rudy Sarzo")
getWikiImage("Melody Gersbach")

http://www.mediawiki.org/wiki/API:Client_code#Python的mediawiki api我检查了,但似乎没有帮助。

2 个答案:

答案 0 :(得分:1)

以下是如何获取wikipage的小例子,主图像应该是页面上的第一个。

import wikipedia

PAGES = ['New York', 'Mercury_(planet)', 'Tucana']

for page in PAGES:
    wikipage = wikipedia.page(page)
    print "Page Title: %s" % wikipage.title
    print "Page URL: %s" % wikipage.url
    print "Nr. of images on page: %d" % len(wikipage.images)
    print " - Main Image: %s" % wikipage.images[0]
    print ""

结帐Quickstart guide for Wikipedia API.

答案 1 :(得分:0)

这将返回文章主图片的网址,而不是随机的网址:

import wikipedia
import requests
import json

WIKI_REQUEST = 'http://en.wikipedia.org/w/api.php?action=query&prop=pageimages&format=json&piprop=original&titles='

def get_wiki_image(search_term):
    try:
        result = wikipedia.search(search_term, results = 1)
        wikipedia.set_lang('en')
        wkpage = wikipedia.WikipediaPage(title = result[0])
        title = wkpage.title
        response  = requests.get(WIKI_REQUEST+title)
        json_data = json.loads(response.text)
        img_link = list(json_data['query']['pages'].values())[0]['original']['source']
        return img_link        
    except:
        return 0

wiki_image = get_wiki_image('Paris City')