aa吴所谓 发表于 2020-7-31 16:32

【python日常学习】爬取4K桌面壁纸

1.png
这个网站都是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))





kumamiko 发表于 2020-9-4 17:31

本帖最后由 kumamiko 于 2020-9-4 17:45 编辑

感谢楼主,但是你的python网络请求没有延时,会不会请求频率过高?

最近玩 powershell 有点上头(有点走火入魔了),拿powershell实现了一遍 ,复制到powershell回车就行了

1..(read-host '输入页数') | %{ $folder = "page-$_" ; `
if(!(Test-Path $folder)){ mkdir $folder} ;`
::Matches((iwr ('https://bing.ioliu.cn/ranking?p=' + $_)).Content, 'pic=(.*?).jpg') `
| %{ iwr ($_.Groups.value + '.jpg') -OutFile ('.\{0}\{1}.jpg'-f $folder,$_.Groups.value.split('/')[-1]);`
sleep 2 };`
sleep 3 }

gentledream 发表于 2020-8-2 17:29

清风徐来L 发表于 2020-7-31 17:51
这个网站是屏蔽鼠标右键吗,我怎么查看不了源代码

F12就可以了。

热爱可抵岁月 发表于 2020-7-31 16:49

好资源,先收藏着

muyu1314520 发表于 2020-7-31 16:52

谢谢楼主分享,超棒

hwp_better 发表于 2020-7-31 16:53

学习python的一次不错的实践!

RoyPenn 发表于 2020-7-31 16:55

不错,感谢分享

九星辰楪 发表于 2020-7-31 16:56

{:17_1068:}感谢分享

晴天薄雨荷 发表于 2020-7-31 16:58

感谢分享,学习一下

smileyet 发表于 2020-7-31 16:58

正好在学习爬虫,感谢楼主的热心分享

落雨碎江南 发表于 2020-7-31 16:59

好东西啊{:1_893:}

cqlk001 发表于 2020-7-31 17:00

正好在学 谢谢分享 研究一下代码
页: [1] 2 3 4
查看完整版本: 【python日常学习】爬取4K桌面壁纸