В этой статье блога мы обсудим различные методы создания предварительного просмотра изображений с помощью API Wikipedia. Предварительный просмотр изображений — отличный способ улучшить взаимодействие с пользователем и обеспечить визуальный контекст при работе с данными Википедии. Мы рассмотрим различные подходы и предоставим примеры кода для каждого метода.
Метод 1: использование API Wikipedia и API MediaWiki
API Wikipedia предоставляет удобный способ доступа к содержимому Википедии, включая изображения. API MediaWiki позволяет нам получать информацию о конкретной странице Википедии, включая связанные с ней изображения. Вот пример того, как вы можете использовать эти API для создания предварительного просмотра изображения:
import requests
def get_image_preview(page_title):
# API endpoint for Wikipedia
wiki_api_url = f"https://en.wikipedia.org/w/api.php?action=query&titles={page_title}&prop=pageimages&format=json"
# Make a request to the Wikipedia API
response = requests.get(wiki_api_url)
data = response.json()
# Extract the image URL from the response
image_info = data["query"]["pages"].values()[0].get("thumbnail")
if image_info:
image_url = image_info["source"]
return image_url
return None
# Usage example
page_title = "OpenAI"
image_url = get_image_preview(page_title)
print(image_url)
def get_image_preview(page_title):
# Construct the image URL based on the page title
image_url = f"https://en.wikipedia.org/wiki/Special:FilePath/{page_title}.jpg"
# Check if the image exists
response = requests.head(image_url)
if response.status_code == 200:
return image_url
return None
# Usage example
page_title = "OpenAI"
image_url = get_image_preview(page_title)
print(image_url)
Метод 3: анализ HTML-страницы Википедии
Другой подход заключается в анализе HTML-содержимого страницы Википедии и извлечении из него URL-адреса изображения. Этот метод требует анализа HTML с использованием такой библиотеки, как BeautifulSoup. Вот пример:
from bs4 import BeautifulSoup
import requests
def get_image_preview(page_title):
# Fetch the HTML content of the Wikipedia page
url = f"https://en.wikipedia.org/wiki/{page_title}"
response = requests.get(url)
html_content = response.text
# Parse the HTML
soup = BeautifulSoup(html_content, "html.parser")
# Find the image element
image_element = soup.find("img", class_="infobox-image")
if image_element:
image_url = image_element["src"]
return image_url
return None
# Usage example
page_title = "OpenAI"
image_url = get_image_preview(page_title)
print(image_url)