cari
Rumahpembangunan bahagian belakangTutorial PythonPengikis Kertas Dinding Bing Peringkat Kemasukan

Entry-Level Bing Wallpaper Scraper

Kerja Persediaan

Analisis elemen web kertas dinding Bing dan API
Untuk mencipta pemuat turun kertas dinding automatik menggunakan Bing, kita perlu memahami cara berinteraksi dengan API Bing. Matlamatnya adalah untuk mengambil URL kertas dinding dan menyimpannya secara setempat dalam format yang dikehendaki. Kami juga akan meneroka API, elemen imej dan corak URL yang berkaitan.

Komponen Utama:

1. API Kertas Dinding Bing:
Bing menyediakan titik akhir untuk mengakses metadata kertas dindingnya, termasuk URL imej, tajuk dan perihalan. Titik akhir utama yang kami gunakan ialah:

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

  • idx=0: Indeks kertas dinding (bermula dari hari ini).
  • n=1: Bilangan kertas dinding untuk diambil (dalam kes ini, hanya satu).
  • mkt=en-AS: Kod pasaran/bahasa (dalam kes ini, Inggeris - AS).

2. URL Imej dan Muat Turun:
URL imej yang disediakan oleh API selalunya dalam format relatif (bermula dengan /th?id=...). Untuk memuat turun imej, kami perlu menambah URL asas https://www.bing.com.

Konvensyen Format dan Penamaan:

URL imej selalunya dalam bentuk:

/th?id=OHR.SouthPadre_ZH-CN8788572569_1920x1080.jpg

Kami akan memproses ini untuk mengekstrak maklumat yang diperlukan, seperti nama imej dan sambungan fail, dan menyimpannya dengan sewajarnya.

Proses

1. Mengambil Data daripada API Bing:
Langkah pertama ialah menghantar permintaan GET ke API Bing. Ini mengembalikan objek JSON yang mengandungi metadata kertas dinding untuk hari tertentu.

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}.")

Ujian Dalam Talian

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

Atas ialah kandungan terperinci Pengikis Kertas Dinding Bing Peringkat Kemasukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bagaimana anda menambah elemen ke array python?Bagaimana anda menambah elemen ke array python?Apr 30, 2025 am 12:19 AM

Inpython, youAppendElementStoalistusingTheAppend () method.1) useAppend () forsingLements: my_list.append (4) .2) useextend () or = formultipleelements: my_list.extend (lain_list) ormy_list = [4,5,6] .3) UseInsert () ForSpecificPositions: my_list.insert (1,5) .beaware

Bagaimana anda menyahpepijat isu berkaitan shebang?Bagaimana anda menyahpepijat isu berkaitan shebang?Apr 30, 2025 am 12:17 AM

Kaedah untuk debug masalah shebang termasuk: 1. Semak garis shebang untuk memastikan ia adalah baris pertama skrip dan tidak ada ruang prefixed; 2. Sahkan sama ada laluan penterjemah adalah betul; 3. Panggil jurubahasa secara langsung untuk menjalankan skrip untuk mengasingkan masalah shebang; 4. Gunakan tali atau amanah untuk mengesan panggilan sistem; 5. Periksa kesan pembolehubah persekitaran pada shebang.

Bagaimana anda membuang elemen dari array python?Bagaimana anda membuang elemen dari array python?Apr 30, 2025 am 12:16 AM

PythonlistscanbemanipulaterAnseveralMethodstoremoveelements: 1) theremove () methodRemoveStHefirStoccrencrentrenceAfaspiedValue.2)

Apakah jenis data yang boleh disimpan dalam senarai python?Apakah jenis data yang boleh disimpan dalam senarai python?Apr 30, 2025 am 12:07 AM

Pythonlistscanstoreanydatatype, termasuk interintegers, strings, floats, booleans, otherlists, dandictionaries

Apakah beberapa operasi biasa yang boleh dilakukan pada senarai Python?Apakah beberapa operasi biasa yang boleh dilakukan pada senarai Python?Apr 30, 2025 am 12:01 AM

PythonlistsSupportnumerousoperations: 1) addingElementSwithAppend (), extend (), andInsert ()

Bagaimana anda membuat tatasusunan pelbagai dimensi menggunakan numpy?Bagaimana anda membuat tatasusunan pelbagai dimensi menggunakan numpy?Apr 29, 2025 am 12:27 AM

Buat tatasusunan pelbagai dimensi dengan numpy dapat dicapai melalui langkah-langkah berikut: 1) Gunakan fungsi numpy.array () untuk membuat array, seperti Np.Array ([[1,2,3], [4,5,6]]) untuk membuat array 2D; 2) Gunakan np.zeros (), np.ones (), np.random.random () dan fungsi lain untuk membuat array yang diisi dengan nilai tertentu; 3) Memahami sifat bentuk dan saiz array untuk memastikan bahawa panjang sub-array adalah konsisten dan mengelakkan kesilapan; 4) Gunakan fungsi np.reshape () untuk mengubah bentuk array; 5) Perhatikan penggunaan memori untuk memastikan bahawa kod itu jelas dan cekap.

Terangkan konsep 'penyiaran' dalam array Numpy.Terangkan konsep 'penyiaran' dalam array Numpy.Apr 29, 2025 am 12:23 AM

Broadcastinginginnumpyisamethodtoperformoperationsonarraysofdifferentshapesbyautomaticallyaligningthem.itsImplifiescode, enhancesreadability, andboostsperformance.here'showitworks: 1) smallerarraysarepaddedwithonestomatchdimensions.2) CompatibeSt

Terangkan cara memilih antara senarai, array.array, dan array numpy untuk penyimpanan data.Terangkan cara memilih antara senarai, array.array, dan array numpy untuk penyimpanan data.Apr 29, 2025 am 12:20 AM

Forpythondatastorage, chooselistsforflexabilityWithMixedDatatypes, array.arrayformemory-efficienthomogeneousnumericaldata, andnumpyarraysforadvancednumericalcomputing.listsareversatileButlessefficefientfientfientfientfientfientfientfientfientfientfientfientforydodeSforayDataSetSetShiSforayDataSetSetShiSforayDataSetSetShiSforayDataSetSetShoFficeSforaydataSetShoSforayDataSetsforayDataSetsforayDataSetsforaydataSetShiSforayDodeSforayDodeSforaydataSetRaydataSetRaydataSetRaydataSet

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna