简介

壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印。

壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印。

演示图片

完整源代码

  1 '''
  2 在学习过程中有什么不懂得可以加我的
  3 python学习交流扣扣qun,934109170
  4 群里有不错的学习教程、开发工具与电子书籍。
  5 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。
  6 '''
  7 # -*- coding:utf-8 -*-
  8
  9 from requests import get
 10 from filetype import guess
 11 from os import rename
 12 from os import makedirs
 13 from os.path import exists
 14 from json import loads
 15 from contextlib import closing
 16
 17
 18 # 文件下载器
 19 def Down_load(file_url, file_full_name, now_photo_count, all_photo_count):
 20     headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
 21
 22     # 开始下载图片
 23     with closing(get(file_url, headers=headers, stream=True)) as response:
 24         chunk_size = 1024  # 单次请求最大值
 25         content_size = int(response.headers['content-length'])  # 文件总大小
 26         data_count = 0 # 当前已传输的大小
 27         with open(file_full_name, "wb") as file:
 28             for data in response.iter_content(chunk_size=chunk_size):
 29                 file.write(data)
 30                 done_block = int((data_count / content_size) * 50)
 31                 data_count = data_count + len(data)
 32                 now_jd = (data_count / content_size) * 100
 33                 print("\r %s:[%s%s] %d%% %d/%d" % (file_full_name, done_block * '█', ' ' * (50 - 1 - done_block), now_jd, now_photo_count, all_photo_count), end=" ")
 34
 35     # 下载完图片后获取图片扩展名,并为其增加扩展名
 36     file_type = guess(file_full_name)
 37     rename(file_full_name, file_full_name + '.' + file_type.extension)
 38
 39
 40
 41 # 爬取不同类型图片
 42 def crawler_photo(type_id, photo_count):
 43
 44     # 最新 1, 最热 2, 女生 3, 星空 4
 45     if(type_id == 1):
 46         url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c68ffb9463b7fbfe72b0db0?page=1&per_page=' + str(photo_count)
 47     elif(type_id == 2):
 48         url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c69251c9b1c011c41bb97be?page=1&per_page=' + str(photo_count)
 49     elif(type_id == 3):
 50         url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c81087e6aee28c541eefc26?page=1&per_page=' + str(photo_count)
 51     elif(type_id == 4):
 52         url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c81f64c96fad8fe211f5367?page=1&per_page=' + str(photo_count)
 53
 54     # 获取图片列表数据
 55     headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
 56     respond = get(url, headers=headers)
 57     photo_data = loads(respond.content)
 58
 59     # 已经下载的图片张数
 60     now_photo_count = 1
 61
 62     # 所有图片张数
 63     all_photo_count = len(photo_data)
 64
 65     # 开始下载并保存5K分辨率壁纸
 66     for photo in photo_data:
 67
 68         # 创建一个文件夹存放我们下载的图片
 69         if not exists('./' + str(type_id)):
 70             makedirs('./' + str(type_id))
 71
 72         # 准备下载的图片链接
 73         file_url = photo['urls']['raw']
 74
 75         # 准备下载的图片名称,不包含扩展名
 76         file_name_only = file_url.split('/')
 77         file_name_only = file_name_only[len(file_name_only) -1]
 78
 79         # 准备保存到本地的完整路径
 80         file_full_name = './' + str(type_id) + '/' + file_name_only
 81
 82         # 开始下载图片
 83         Down_load(file_url, file_full_name, now_photo_count, all_photo_count)
 84         now_photo_count = now_photo_count + 1
 85
 86
 87
 88 if __name__ == '__main__':
 89
 90     # 最新 1, 最热 2, 女生 3, 星空 4
 91     # 爬取类型为3的图片(女生),一共准备爬取20000张
 92     wall_paper_id = 1
 93     wall_paper_count = 10
 94     while(True):
 95
 96         # 换行符
 97         print('\n\n')
 98
 99         # 选择壁纸类型
100         wall_paper_id = input("壁纸类型:最新壁纸 1, 最热壁纸 2, 女生壁纸 3, 星空壁纸 4\n请输入编号以便选择5K超清壁纸类型:")
101         # 判断输入是否正确
102         while(wall_paper_id  != str(1) and wall_paper_id  != str(2) and wall_paper_id  != str(3) and wall_paper_id  != str(4)):
103             wall_paper_id = input("壁纸类型:最新壁纸 1, 最热壁纸 2, 女生壁纸 3, 星空壁纸 4\n请输入编号以便选择5K超清壁纸类型:")
104
105
106         # 选择要下载的壁纸数量
107         wall_paper_count = input("请输入要下载的5K超清壁纸的数量:")
108         # 判断输入是否正确
109         while(int(wall_paper_count) <= 0):
110             wall_paper_count = input("请输入要下载的5K超清壁纸的数量:")
111
112
113         # 开始爬取5K高清壁纸
114         print("正在下载5K超清壁纸,请稍等……")
115         crawler_photo(int(wall_paper_id), int(wall_paper_count))
116         print('\n下载5K高清壁纸成功!')

转载于:https://www.cnblogs.com/xiaoyiq/p/11337829.html

python爬虫学习之爬取超清唯美壁纸相关推荐

  1. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  2. Python爬虫学习之爬取淘宝搜索图片

    Python爬虫学习之爬取淘宝搜索图片 准备工作 因为淘宝的反爬机制导致Scrapy不能使用,所以我这里是使用selenium来获取网页信息,并且通过lxml框架来提取信息. selenium.lxm ...

  3. 5.爬取5K分辨率超清唯美壁纸

    目录 README.MD main.py requirement.txt 相信大家都很需要哪些既好看又能符合自己当时的心情的高清壁纸,很多时候壁纸反应我们当时的心情,一张好的壁纸就一道靓丽的风景,让人 ...

  4. 爬取5K分辨率超清唯美壁纸

    @[toc] 爬取5K分辨率超清唯美壁纸 简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了, ...

  5. 为了部落 来自艾泽拉斯勇士的python爬虫学习心得 爬取大众点评上的各种美食数据并进行数据分析

    为了希尔瓦娜斯 第一个爬虫程序 csgo枪械数据 先上代码 基本思想 问题1 问题2 爬取大众点评 URL分析 第一个难题 生成csv文件以及pandas库 matplotlib.pyplot库 K- ...

  6. python手机壁纸超清_python爬虫学习之爬取5K分辨率超清唯美壁纸

    前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取! 简介 壁纸的选择其实很大程度上 ...

  7. Python爬虫教程-爬取5K分辨率超清唯美壁纸源码

    简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...

  8. 用Python爬取5K分辨率超清唯美壁纸

    简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...

  9. 【Python实战】爬取5K分辨率超清唯美壁纸

    简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...

最新文章

  1. 【LCT】洞穴勘测(luogu 2147/金牌导航 LCT-1)
  2. 作者:李涛(1975-),男,南京邮电大学计算机学院、软件学院院长,南京邮电大学大数据研究院院长。...
  3. Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...
  4. 【java学习之路】(数据结构篇)001.数组
  5. 计算机字体颜色太浅,win10 windows界面字体颜色太淡如何解决
  6. 复旦大学《高等代数学习指导书(第三版)》前言
  7. 一些好用的开源监控工具汇总
  8. 拆t460拆机图解_ThinkPad T460P评测,二楼附ThinkPad T460P拆机图
  9. AutoRunner自动化测试工具下载地址及安装步骤-泽众云测试
  10. 使电动机反转的matlab仿真图,基于MATLAB的电机仿真研究
  11. 计算机网路课程设计——电子邮件客户端的设计与实现——接收邮件(POP3协议)
  12. 修改Oracle GoldenGate(ogg)各个进程的读检查点和写检查点
  13. 计算机中的字体无法删除,电脑安装的字体怎么删除不了怎么办啊
  14. office2007加载缓慢_「excel2003打开2007」excel2007打开很慢怎么办 - seo实验室
  15. win7激活成功 但每次开机后又显示此windows副本不是正版的解决办法
  16. 1050: [HAOI2006]旅行comf
  17. 第6天:分割处理与中断处理
  18. 外网下载速度过慢问题解决办法
  19. 晨控可视化标签在资产管理上的应用及优势
  20. 微课程学习平台(微课平台)-特色功能(移动学习解决方案)

热门文章

  1. matlab fmincon 怎样停止,请教:matlab 中关于 fmincon 函数问题
  2. conda bad interpreter 问题解决
  3. 细粒度分类 CUB_200_2011 vgg16 (数字图像处理)
  4. mysql 存储过程 动态排序
  5. 内核级线程(KLT)和用户级线程(ULT)
  6. 【机器人学】平面2R机器人(二)——逆运动学
  7. python识别图片文字_如何利用Python识别图片中的文字
  8. 【Unity】文字游戏制作插件Fungus教程(2)问答系统的开发
  9. Machine Learning第六周笔记一:评估学习算法和bias/variance
  10. 【数据库-3】dbSNP数据库