是否有任何 API 可以从 wiki 页面获取图像

nlp*_*per 6 python wikipedia dbpedia

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

我试过

https://github.com/richardasaurus/wiki-api , https://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")
Run Code Online (Sandbox Code Playgroud)

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

The*_*olC 5

这是如何获取维基页面的小例子,主图像应该是页面上的第一个图像。

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 ""
Run Code Online (Sandbox Code Playgroud)

查看Wikipedia API 的快速入门指南。

  • 似乎“wikipage.images[0]”现在不返回主图像(右上),但它返回文章中的随机图片 (6认同)
  • @DmytroSytro 我知道这是两年前的事了,但是你有没有找到一种方法来获取主图像而不是随机图像 (2认同)

Dmy*_*tro 5

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

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')
Run Code Online (Sandbox Code Playgroud)