囧囧囧囧 发表于 2020-7-31 18:31

【python】爬取4K桌面壁纸

这个网站都是4K的桌面壁纸。


import re
import requests
import os
from time import sleep

def get_page():
    page = eval(input("请输入要下载页数(共134页):"))
    return page

def get_picsurl(resolution, page=1):
    url = f"https://bing.ioliu.cn/ranking?p={page}"
    res = requests.get(url, headers=headers)
    urls = re.findall('pic=(.*?)\\.jpg', res.text)
    _old_resolution = urls.split("_")[-1]
    return {url.split("/")[-1].replace(_old_resolution, resolution): url.replace(_old_resolution, resolution) + ".jpg"
            for url in urls}

def download_pic(pics,a):
    if os.path.isdir("F:\Python爬取\图片\必应壁纸") != True:
      os.makedirs(r"F:\Python爬取\图片\必应壁纸")
    try:
      for pic_name, pic_url in pics.items():
            res = requests.get(pic_url, headers=headers)
            with open(f"F:\Python爬取\图片\必应壁纸\{pic_name}.jpg", mode="wb") as f:
                f.write(res.content)
            print(f"{pic_name} 下载完成")
            a = a+1
      return a
    except Exception as e:
      print("下载出错", e)
if __name__ == '__main__':

    headers = {
      "User-Agent": ("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) "
                     "Gecko/20100101 Firefox/64.0")
    }

    page = get_page()
    i = 1
    pages = 0
    while i <= page:
      print(f"当前第{i}页,共需要下载{page}页")
      pics = get_picsurl("1920x1080", i)
      pages = download_pic(pics,pages)
      i += 1
    print("下载完成!共成功下载{}张图片。".format(pages))


15930590065 发表于 2020-7-31 18:43

谢谢大牛

zhengshiguang 发表于 2020-7-31 18:56

好的,非常感谢

zyw35100 发表于 2020-7-31 19:10

谢谢大佬

13697683810 发表于 2020-7-31 20:30

感谢楼主分享

落樱吹雪 发表于 2020-7-31 21:19

6666

HH72077 发表于 2020-7-31 22:12

6666666666

笑东风丶 发表于 2020-7-31 22:13

感谢大佬分享,大牛因有你而更精彩

5215177 发表于 2020-8-1 07:25

谢谢分享
页: [1]
查看完整版本: 【python】爬取4K桌面壁纸