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 更新-------------------------------

# 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图片页面。(已不可用)

       一直想抽个时间做个 Win10 商店的UWP应用,来实现自动更新获取每日Bing图片和历史图片下载功能,过段时间吧。

      心得:首先要找到能获取相同资源网站中,最简单可靠(容易找到规律可循的点)的网站来进行爬取,一来节省代码开发时间,二来方便之后调试修改。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值