我想从维基百科页面获取主图像,我有所有维基百科实体名称,我从中创建维基链接并从该页面获取主图像。
我试过
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")
在http://www.mediawiki.org/wiki/API:Client_code#Python的mediawiki api我检查了,但似乎没有帮助。
答案 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 ""
答案 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')