Skip to content

axe433/bing_wallpaper_data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

210 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Bing Wallpaper Data Crawler and Markdown Generator

An automated Bing wallpaper data collection and documentation generation project that supports daily wallpaper data crawling, high-definition image downloading, and Markdown document generation for 34+ countries and regions.

๐ŸŒŸ Key Features

๐Ÿ“Š Data Crawling

  • Multi-Country Support: Supports 34+ countries and regions for Bing wallpaper data
  • Daily Auto-Update: Automatically runs daily at 23:01 UTC via GitHub Actions
  • Data Integrity: Saves complete wallpaper metadata including titles, copyright info, descriptions, etc.

๐Ÿ–ผ๏ธ Image Download

  • High-Definition Wallpapers: Automatically downloads UHD ultra-high-definition wallpapers
  • Smart Deduplication: Automatically detects and removes duplicate images based on MD5 hash
  • Incremental Download: Only downloads new wallpapers, avoiding duplicates
  • File Management: Uses MD5 values as filenames for easy management and deduplication

๐Ÿ“ Document Generation

  • Automated Documentation: Generates dedicated Markdown documents for each country
  • Responsive Layout: 3-column grid layout that adapts to different screen sizes
  • Multi-Time Dimensions: Supports today's wallpaper, recent 30 days, and archive browsing by year/month
  • Multilingual Support: Supports interface text in multiple languages

๐Ÿ—‚๏ธ Project Structure

Project Root/
โ”œโ”€โ”€ .github/workflows/          # GitHub Actions workflows
โ”‚   โ””โ”€โ”€ python-app.yml         # Automation task configuration
โ”œโ”€โ”€ crawl/                     # Crawler scripts directory
โ”‚   โ”œโ”€โ”€ bing_data.py          # Data crawling script
โ”‚   โ”œโ”€โ”€ download_wallpapers_action.py  # Wallpaper download script (Actions version)
โ”‚   โ”œโ”€โ”€ download_wallpapers.py # Wallpaper download script (Local version)
โ”‚   โ”œโ”€โ”€ generate_markdown.py  # Markdown document generation script
โ”‚   โ”œโ”€โ”€ generate_readme.py    # README generation script
โ”‚   โ””โ”€โ”€ deduplicate_images.py # Image deduplication tool
โ”œโ”€โ”€ jsonc/                     # Wallpaper data storage
โ”‚   โ”œโ”€โ”€ us/bing.jsonc         # US wallpaper data
โ”‚   โ”œโ”€โ”€ cn/bing.jsonc         # China wallpaper data
โ”‚   โ””โ”€โ”€ ...                   # Other country data
โ”œโ”€โ”€ images/                    # Downloaded wallpaper images
โ”‚   โ”œโ”€โ”€ {md5}.jpg             # Image files named with MD5
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ markdown/                  # Generated documents
โ”‚   โ”œโ”€โ”€ wallpaper-list-us.md  # US wallpaper document
โ”‚   โ”œโ”€โ”€ wallpaper-list-cn.md  # China wallpaper document
โ”‚   โ””โ”€โ”€ ...                   # Other country documents
โ”œโ”€โ”€ messages/                  # Internationalization text
โ”‚   โ”œโ”€โ”€ us.json               # English interface text
โ”‚   โ”œโ”€โ”€ cn.json               # Chinese interface text
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ templates/                 # README template files
โ”‚   โ”œโ”€โ”€ README_template.md    # English README template
โ”‚   โ””โ”€โ”€ README_CN_template.md # Chinese README template
โ”œโ”€โ”€ README.md                  # Project documentation (auto-generated)
โ””โ”€โ”€ README_CN.md              # Chinese documentation (auto-generated)

๐Ÿš€ Core Scripts

bing_data.py - Data Crawling Script

  • Function: Crawls daily wallpaper data from Bing API
  • Output: Saves to jsonc/{country}/bing.jsonc
  • Features:
    • Supports 34+ countries and regions
    • Automatic API response and error handling
    • Maintains chronological order (newest first)
    • Incremental updates, avoiding duplicate data

download_wallpapers_action.py - Wallpaper Download Script

  • Function: Downloads high-definition wallpaper images and manages files
  • Features:
    • Smart Skip: Checks md5 field in JSON, skips already downloaded items
    • URL Construction: https://www.bing.com{urlbase}_UHD.jpg
    • MD5 Management: Calculates image MD5 value, used as filename and deduplication identifier
    • Auto Deduplication: Automatically deletes duplicate files with same MD5
    • Data Update: Writes MD5 value back to JSON data

generate_markdown.py - Document Generation Script

  • Function: Generates beautiful Markdown wallpaper documents
  • Output: Saves to markdown/wallpaper-list-{country}.md
  • Features:
    • Today's Wallpaper: Showcases the featured wallpaper of the day
    • Recent 30 Days: 3-column grid layout showing recent wallpapers
    • Archive Navigation: Historical wallpaper browsing organized by year/month
    • Responsive Design: Display effects adapted to different devices
    • Multilingual Support: Displays interface in corresponding language based on country

generate_readme.py - README Generation Script

  • Function: Automatically generates bilingual README documents
  • Input: Reads from templates/README_template.md and templates/README_CN_template.md
  • Output: Updates README.md and README_CN.md in project root
  • Features:
    • Template-Based: Uses template files to avoid overwriting base content
    • Country Links: Generates links to all country wallpaper documents
    • Today's Wallpaper: Embeds today's featured wallpaper (US for English, CN for Chinese)
    • Bilingual Support: Generates both English and Chinese versions
    • Auto-Update: Runs daily with other automation tasks

โš™๏ธ Automated Workflow

GitHub Actions automatically executes the following steps daily:

  1. ๐Ÿ”„ Checkout Code - Get the latest project code
  2. ๐Ÿ Setup Python Environment - Configure Python runtime environment
  3. ๐Ÿ“ฆ Install Dependencies - Install necessary libraries like requests
  4. ๐Ÿ“Š Crawl Data - Run bing_data.py to get latest wallpaper data
  5. ๐Ÿ–ผ๏ธ Download Images - Run download_wallpapers_action.py to download new wallpapers
  6. ๐Ÿ“ Generate Documents - Run generate_markdown.py to update Markdown documents
  7. ๐Ÿ“„ Generate README - Run generate_readme.py to update project README files
  8. ๐Ÿ’พ Commit Changes - Automatically commit and push all updates

๐ŸŒ Supported Countries and Regions

The project supports the following 34 countries and regions:

Code Country/Region Code Country/Region Code Country/Region
ar ๐Ÿ‡ฆ๐Ÿ‡ท Argentina au ๐Ÿ‡ฆ๐Ÿ‡บ Australia br ๐Ÿ‡ง๐Ÿ‡ท Brazil
ca ๐Ÿ‡จ๐Ÿ‡ฆ Canada cn ๐Ÿ‡จ๐Ÿ‡ณ China cz ๐Ÿ‡จ๐Ÿ‡ฟ Czech Republic
de ๐Ÿ‡ฉ๐Ÿ‡ช Germany dk ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark es ๐Ÿ‡ช๐Ÿ‡ธ Spain
fi ๐Ÿ‡ซ๐Ÿ‡ฎ Finland fr ๐Ÿ‡ซ๐Ÿ‡ท France gb ๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom
gr ๐Ÿ‡ฌ๐Ÿ‡ท Greece hk ๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong id ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia
in ๐Ÿ‡ฎ๐Ÿ‡ณ India it ๐Ÿ‡ฎ๐Ÿ‡น Italy jp ๐Ÿ‡ฏ๐Ÿ‡ต Japan
kr ๐Ÿ‡ฐ๐Ÿ‡ท South Korea my ๐Ÿ‡ฒ๐Ÿ‡พ Malaysia nl ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands
no ๐Ÿ‡ณ๐Ÿ‡ด Norway pl ๐Ÿ‡ต๐Ÿ‡ฑ Poland pt ๐Ÿ‡ต๐Ÿ‡น Portugal
ru ๐Ÿ‡ท๐Ÿ‡บ Russia se ๐Ÿ‡ธ๐Ÿ‡ช Sweden sg ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore
th ๐Ÿ‡น๐Ÿ‡ญ Thailand tr ๐Ÿ‡น๐Ÿ‡ท Turkey tw ๐Ÿ‡น๐Ÿ‡ผ Taiwan
ua ๐Ÿ‡บ๐Ÿ‡ฆ Ukraine us ๐Ÿ‡บ๐Ÿ‡ธ United States vn ๐Ÿ‡ป๐Ÿ‡ณ Vietnam
za ๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa

๐Ÿ› ๏ธ Local Usage

Requirements

  • Python 3.7+
  • requests library

Install Dependencies

pip install requests

Manual Execution

# 1. Crawl wallpaper data
python crawl/bing_data.py

# 2. Download wallpaper images
python crawl/download_wallpapers_action.py

# 3. Generate Markdown documents
python crawl/generate_markdown.py

# 4. Generate README documents
python crawl/generate_readme.py

Image Deduplication Tool

# Clean duplicate image files
python crawl/deduplicate_images.py

๐Ÿ“‹ Generated Document Features

Each generated Markdown document includes:

๐ŸŽฏ Today's Wallpaper

  • High-definition wallpaper preview
  • Detailed description and copyright information
  • Click to view details page link

๐Ÿ“… Recent 30 Days

  • 3-column responsive grid layout
  • Thumbnail and basic information for each wallpaper
  • Formatted date display

๐Ÿ—ƒ๏ธ Archive Navigation

  • Month navigation grouped by year
  • Current month highlighting
  • Beautiful button-style design

๐ŸŒ Multilingual Support

  • Automatically selects interface language based on country
  • Supports English, Chinese, German, French, Japanese, etc.
  • Extensible internationalization framework

๐Ÿ”ง Configuration

GitHub Actions Configuration

Workflow configuration file: .github/workflows/python-app.yml

name: Generate Bing Wallpaper Json Auto
on:
  schedule:
    - cron: '1 23 * * *'  # Execute daily at 23:01 UTC
  workflow_dispatch:      # Support manual trigger

jobs:
  download_and_push:
    runs-on: ubuntu-latest
    steps:
      - name: run bingjson
        run: python crawl/bing_data.py
      - name: Download wallpaper images
        run: python crawl/download_wallpapers_action.py
      - name: Generate markdown documents
        run: python crawl/generate_markdown.py
      - name: Generate README documents
        run: python crawl/generate_readme.py
      - name: Commit and Push
        run: |
          git add .
          git commit -m "Update wallpaper data and markdown at $(date)"
          git push

Data Format

Each wallpaper data item contains the following fields:

  • startdate / enddate: Start and end dates of the wallpaper
  • url / urlbase: URL information of the wallpaper
  • copyright: Copyright information
  • title: Wallpaper title
  • md5: MD5 hash value of the image file (added after download)
  • MediaContent: Detailed media content information

๐ŸŽจ Featured Capabilities

Smart Download Management

  • โœ… Incremental Download: Only downloads new wallpapers without md5 field
  • โœ… Auto Deduplication: Avoids duplicate images based on MD5 hash
  • โœ… Error Handling: Graceful handling of network exceptions without interrupting the process
  • โœ… Detailed Logging: Provides clear processing progress and result statistics

Document Generation Optimization

  • โœ… Responsive Design: Adapts to desktop and mobile devices
  • โœ… SEO Friendly: Structured titles and metadata
  • โœ… Fast Loading: Optimized image links and layout
  • โœ… User Experience: Intuitive navigation and browsing experience

Automated Operations

  • โœ… Scheduled Execution: Daily automatic updates without manual intervention
  • โœ… Error Monitoring: GitHub Actions provides execution status monitoring
  • โœ… Version Control: All changes have complete Git history records
  • โœ… Scalability: Easy to add new countries and features

๐Ÿ“ˆ Project Statistics

  • Supported Countries: 34+ countries and regions
  • Data Format: JSON/JSONC structured storage
  • Image Quality: UHD ultra-high-definition (usually 3840x2160 or higher)
  • Update Frequency: Daily automatic updates
  • Document Format: Markdown, perfectly compatible with GitHub

๐Ÿค Contributing

Welcome to submit Issues and Pull Requests to improve this project!

๐Ÿ“„ License

This project is for learning and research purposes only. All wallpaper copyrights belong to Microsoft Bing and the respective photographers/copyright owners.


Last Updated: August 2025

๐ŸŒ Country Wallpaper Links

Click the links below to view wallpaper for each country:

๐Ÿ‡ฆ๐Ÿ‡ท Argentina ๐Ÿ‡ฆ๐Ÿ‡บ Australia ๐Ÿ‡ง๐Ÿ‡ท Brazil ๐Ÿ‡จ๐Ÿ‡ฆ Canada ๐Ÿ‡จ๐Ÿ‡ณ China
๐Ÿ‡จ๐Ÿ‡ฟ Czech Republic ๐Ÿ‡ฉ๐Ÿ‡ช Germany ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark ๐Ÿ‡ช๐Ÿ‡ธ Spain ๐Ÿ‡ซ๐Ÿ‡ฎ Finland
๐Ÿ‡ซ๐Ÿ‡ท France ๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom ๐Ÿ‡ฌ๐Ÿ‡ท Greece ๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia
๐Ÿ‡ฎ๐Ÿ‡ณ India ๐Ÿ‡ฎ๐Ÿ‡น Italy ๐Ÿ‡ฏ๐Ÿ‡ต Japan ๐Ÿ‡ฐ๐Ÿ‡ท South Korea ๐Ÿ‡ฒ๐Ÿ‡พ Malaysia
๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands ๐Ÿ‡ณ๐Ÿ‡ด Norway ๐Ÿ‡ต๐Ÿ‡ฑ Poland ๐Ÿ‡ต๐Ÿ‡น Portugal ๐Ÿ‡ท๐Ÿ‡บ Russia
๐Ÿ‡ธ๐Ÿ‡ช Sweden ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore ๐Ÿ‡น๐Ÿ‡ญ Thailand ๐Ÿ‡น๐Ÿ‡ท Turkey ๐Ÿ‡น๐Ÿ‡ผ Taiwan
๐Ÿ‡บ๐Ÿ‡ฆ Ukraine ๐Ÿ‡บ๐Ÿ‡ธ United States ๐Ÿ‡ป๐Ÿ‡ณ Vietnam ๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa

Today's Wallpaper

Tahoe serving views

Tahoe serving views

You know a place holds stories when geologists, filmmakers, and local folklore all claim it for different reasons. Lake Tahoe, straddling the border between California and Nevada, fits that bill perfectly. Formed during the Ice Age, the lake was shaped by faulting and glacial carving that created its deep basin. It is now one of the deepest freshwater lakes in the United States. For generations, the Washoe people lived around these clear waters, fishing and gathering seasonally. Centuries later, miners arrived, steamboats crossed the water, and Tahoe shifted from a resource hub to a year-round retreat.

ยฉ Bill Stevenson/Cavan Images (Bing United States)


Recent 30 Days

Tahoe serving views A shadow's promise Celebrate. Reflect. Rise.
Tahoe serving views
Emerald Bay and Fannette Island, Lake Tahoe, California
2026-02-04
A shadow's promise
Alpine marmots, Hohe Tauern National Park, Austria
2026-02-03
Celebrate. Reflect. Rise.
US Army nurses arrive in Greenock, Scotland, 1944
2026-02-02
Love at first stripe Where the sea makes way A tall story of Milwaukee
Love at first stripe
Plains zebras, Etosha National Park, Namibia
2026-02-01
Where the sea makes way
St. Michael's Mount in Marazion, Cornwall, England
2026-01-31
A tall story of Milwaukee
The eight-story open atrium of Milwaukee City Hall, Wisconsin
2026-01-30
Flow with it Feather forecast: pelicans ahead Bavariaโ€™s gem
Flow with it
Whanganui National Park, Retaruke, New Zealand
2026-01-29
Feather forecast: pelicans ahead
Dalmatian pelicans, Lake Kerkini, Greece
2026-01-28
Bavariaโ€™s gem
Neuschwanstein Castle, Bavaria, Germany
2026-01-27
Tradition burns bright A Swiss escape Feasting through frost
Tradition burns bright
Burns National Heritage Park, Ayr, Ayrshire, Scotland
2026-01-26
A Swiss escape
Andermatt village in the Alps, Switzerland
2026-01-25
Feasting through frost
Sheep grazing in snow, Iceland
2026-01-24
A Bohemian spa story A flash of red in the winter white Life on the edge of the ice
A Bohemian spa story
Karlovy Vary, Bohemia, Czechia
2026-01-23
A flash of red in the winter white
Eurasian red squirrel
2026-01-22
Life on the edge of the ice
Gentoo penguin, Petermann Island, Antarctica
2026-01-21
Standing where hope rose A desert in disguise The dome of Piazza del Plebiscito
Standing where hope rose
Washington Monument seen from Lincoln Memorial, Washington, DC
2026-01-20
A desert in disguise
White Sands National Park, New Mexico
2026-01-19
The dome of Piazza del Plebiscito
Basilica of San Francesco di Paola, Naples, Italy
2026-01-18
Eye see you Tiny village, big views Ascending history at Palamidi
Eye see you
Leopard at Etosha National Park, Namibia
2026-01-17
Tiny village, big views
The fishing village of Reine, Norway
2026-01-16
Ascending history at Palamidi
The staircase of the Fortress of Palamidi, Nafplio, Greece
2026-01-15
Apple rhymes and old times Otter-ly Estonia From resistance to radiance
Apple rhymes and old times
Vale of Clwyd, Wales
2026-01-14
Otter-ly Estonia
Eurasian otter and pup, Estonia
2026-01-13
From resistance to radiance
Blue walls of Chefchaouen, Morocco
2026-01-12
Pure Swiss magic Where time grows tall Rust meets rush
Pure Swiss magic
The Matterhorn reflected in Lake Stellisee at sunrise, Zermatt, Switzerland
2026-01-11
Where time grows tall
Giant redwood trees in Muir Woods National Monument, California
2026-01-10
Rust meets rush
Starling murmuration over the ruins of Brighton's West Pier, England
2026-01-09
Rock legends Chillin' in Nuuk Herd on high alert
Rock legends
Turret Arch framed by North Window in Arches National Park, Utah
2026-01-08
Chillin' in Nuuk
Nuuk, Greenland
2026-01-07
Herd on high alert
A herd of impalas, Londolozi Game Reserve, South Africa
2026-01-06

Wallpaper Archive by Year

2026

2025


Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages