Heim > Backend-Entwicklung > Python-Tutorial > Einsteiger-Bing-Tapetenschaber

Einsteiger-Bing-Tapetenschaber

Patricia Arquette
Freigeben: 2025-01-04 01:22:39
Original
539 Leute haben es durchsucht

Entry-Level Bing Wallpaper Scraper

Vorbereitende Arbeiten

Analyse der Bing-Hintergrund-Webelemente und API
Um einen automatisierten Wallpaper-Downloader mit Bing zu erstellen, müssen wir verstehen, wie wir mit der Bing-API interagieren. Das Ziel besteht darin, Hintergrundbild-URLs abzurufen und sie lokal im gewünschten Format zu speichern. Wir werden auch die relevanten APIs, Bildelemente und URL-Muster untersuchen.

Schlüsselkomponenten:

1. Bings Wallpaper-API:
Bing bietet einen Endpunkt für den Zugriff auf seine Hintergrundmetadaten, einschließlich Bild-URLs, Titel und Beschreibungen. Der primäre Endpunkt, den wir verwenden, ist:

https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US

Nach dem Login kopieren
  • idx=0: Der Index des Hintergrundbilds (ab heute).
  • n=1: Die Anzahl der abzurufenden Hintergrundbilder (in diesem Fall nur eines).
  • mkt=en-US: Der Markt-/Sprachcode (in diesem Fall Englisch – USA).

2. Bild-URL und Download:
Die von der API bereitgestellten Bild-URLs haben häufig ein relatives Format (beginnend mit /th?id=...). Um das Bild herunterzuladen, müssen wir die Basis-URL https://www.bing.com voranstellen.

Format- und Namenskonvention:

Die Bild-URL hat häufig die Form:

/th?id=OHR.SouthPadre_ZH-CN8788572569_1920x1080.jpg
Nach dem Login kopieren

Wir werden dies verarbeiten, um die notwendigen Informationen, wie den Bildnamen und die Dateierweiterung, zu extrahieren und entsprechend zu speichern.

Verfahren

1. Daten von der Bing-API abrufen:
Der erste Schritt besteht darin, eine GET-Anfrage an die Bing-API zu senden. Dies gibt ein JSON-Objekt zurück, das die Metadaten des Hintergrundbilds für einen bestimmten Tag enthält.

import requests
import os

# Simulate browser request headers
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
}

# Directory to save wallpapers
default_pictures_dir = os.path.join(os.path.expanduser("~"), "Pictures")
picture_path = os.path.join(default_pictures_dir, "bing")

# Create the directory if it doesn't exist
if not os.path.exists(picture_path):
    os.makedirs(picture_path)

# Fetch wallpapers (last 4 days including today)
for idx in range(4):
    # Request Bing's wallpaper metadata
    api_url = f"https://www.bing.com/HPImageArchive.aspx?format=js&idx={idx}&n=1&mkt=en-US"
    response = requests.get(api_url, headers=headers)
    if response.status_code != 200:
        print(f"Failed to fetch data for idx={idx}, skipping.")
        continue

    data = response.json()
    if not data.get("images"):
        print(f"No images found for idx={idx}, skipping.")
        continue

    # Extract image details
    image_info = data["images"][0]
    image_url = "https://www.bing.com" + image_info["url"]
    image_name = image_info["urlbase"].split("/")[-1] + ".jpg"
    save_path = os.path.join(picture_path, image_name)

    # Download the image
    image_response = requests.get(image_url, headers=headers)
    if image_response.status_code == 200:
        with open(save_path, "wb") as f:
            f.write(image_response.content)
        print(f"Downloaded: {save_path}")
    else:
        print(f"Failed to download image for idx={idx}.")

Nach dem Login kopieren

Online-Test

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/Excalibra/scripts/refs/heads/main/d-python/get_bing_wallpapers.py)"
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinsteiger-Bing-Tapetenschaber. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage