18行 python3 代碼爬取 Bing今日美圖的全部圖片

於 2019.04.10 更新,解決微軟Bing美圖 -圖片Url修改後獲取失敗問題 

# python3 抓取bing今日美圖的全部背景圖片
import requests
from pyquery import PyQuery as pq

def download(p):
    url = "http://bing.plmeizi.com/show/"+str(p)
    res = requests.get(url).text
    doc = pq(res)
    img_url = doc.find('#picurl').attr("href")
    print(i, img_url)
    if img_url:
        right = img_url.rindex('/')
        right1 = img_url.rindex('Z')
        name = img_url[right + 1:right1 - 1] + ".jpg"     # 修改圖片名,去掉多餘字段.
        img = requests.get(img_url).content
        with open(".\\Bing_Photos\\" + name, "wb") as f:     # 手動在程序同目錄下建一個文件夾Bing_Photos,用於放置圖片.
            f.write(img)

for i in range(890, 820, -1):     # 設置爬取天數,800對應日期20180805,依次增減便可。
    download(i)

---------------------------------------如下爲  2019.04.10 更新-------------------------------html

# python3.6 抓取bing今日美圖的全部背景圖片---19.04.01

import os
import datetime
import requests
from pyquery import PyQuery as pQ


def download(a):
    url = "http://bing.plmeizi.com/show/"+str(a)

    res = requests.get(url).text
    doc = pQ(res)
    img_url = doc.find('#picurl').attr("href")
    print(a, img_url)
    if img_url:
        right = img_url.rindex('R.')
        right1 = img_url.rindex('Z')
        name = img_url[right + 2:right1 - 1] + ".jpg"     # 修改圖片名,去掉多餘字段.
        img = requests.get(img_url).content
        cur_dir = 'C://Users//Andy//Pictures//'   # 手動在對應的用戶目錄下建一個用於放置圖片的文件夾名BingPic
        img_dir = os.path.join(cur_dir, "BingPic")   # 如路徑爲 C://Users//XXX//Pictures//BingPic,XXX爲你的用戶名
        with open(os.path.join(img_dir, name), "wb") as f:
            f.write(img)


days = datetime.datetime.now().strftime('%j')  # 定時天天更新一張圖(編號 948 對應日期 2019-01-01的Bing壁紙的編號),days表明2019年第幾天。
i = int(days)
download(948 + i)

***需手動在對應目錄下建一個文件夾Bing_Photos,用於放置下載的圖片。

原理是:經過改變網站 http://bing.plmeizi.com/show/ + XXX(三位數字)  來直接進入對應日期的Bing圖片頁面。(已不可用)python

       一直想抽個時間作個 Win10 商店的UWP應用,來實現自動更新獲取每日Bing圖片和歷史圖片下載功能,過段時間吧。

      心得:首先要找到能獲取相同資源網站中,最簡單可靠(容易找到規律可循的點)的網站來進行爬取,一來節省代碼開發時間,二來方便以後調試修改。