简介

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

项目源码

  1. # -*- coding:utf-8 -*-
  2.  
  3. from requests import get
  4. from filetype import guess
  5. from os import rename
  6. from os import makedirs
  7. from os.path import exists
  8. from json import loads
  9. from contextlib import closing
  10.  
  11. # 文件下载器
  12. def Down_load(file_url, file_full_name, now_photo_count, all_photo_count):
  13. 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"}
  14.  
  15. # 开始下载图片
  16. with closing(get(file_url, headers=headers, stream=True)) as response:
  17. chunk_size = 1024 # 单次请求最大值
  18. content_size = int(response.headers['content-length']) # 文件总大小
  19. data_count = 0 # 当前已传输的大小
  20. with open(file_full_name, "wb") as file:
  21. for data in response.iter_content(chunk_size=chunk_size):
  22. file.write(data)
  23. done_block = int((data_count / content_size) * 50)
  24. data_count = data_count + len(data)
  25. now_jd = (data_count / content_size) * 100
  26. 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=" ")
  27.  
  28. # 下载完图片后获取图片扩展名,并为其增加扩展名
  29. file_type = guess(file_full_name)
  30. rename(file_full_name, file_full_name + '.' + file_type.extension)
  31.  
  32. # 爬取不同类型图片
  33. def crawler_photo(type_id, photo_count):
  34.  
  35. # 最新 1, 最热 2, 女生 3, 星空 4
  36. if(type_id == 1):
  37. url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c68ffb9463b7fbfe72b0db0?page=1&per_page=' + str(photo_count)
  38. elif(type_id == 2):
  39. url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c69251c9b1c011c41bb97be?page=1&per_page=' + str(photo_count)
  40. elif(type_id == 3):
  41. url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c81087e6aee28c541eefc26?page=1&per_page=' + str(photo_count)
  42. elif(type_id == 4):
  43. url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c81f64c96fad8fe211f5367?page=1&per_page=' + str(photo_count)
  44.  
  45. # 获取图片列表数据
  46. 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"}
  47. respond = get(url, headers=headers)
  48. photo_data = loads(respond.content)
  49.  
  50. # 已经下载的图片张数
  51. now_photo_count = 1
  52.  
  53. # 所有图片张数
  54. all_photo_count = len(photo_data)
  55.  
  56. # 开始下载并保存5K分辨率壁纸
  57. for photo in photo_data:
  58.  
  59. # 创建一个文件夹存放我们下载的图片
  60. if not exists('./' + str(type_id)):
  61. makedirs('./' + str(type_id))
  62.  
  63. # 准备下载的图片链接
  64. file_url = photo['urls']['raw']
  65.  
  66. # 准备下载的图片名称,不包含扩展名
  67. file_name_only = file_url.split('/')
  68. file_name_only = file_name_only[len(file_name_only) -1]
  69.  
  70. # 准备保存到本地的完整路径
  71. file_full_name = './' + str(type_id) + '/' + file_name_only
  72.  
  73. # 开始下载图片
  74. Down_load(file_url, file_full_name, now_photo_count, all_photo_count)
  75. now_photo_count = now_photo_count + 1
  76.  
  77. if __name__ == '__main__':
  78.  
  79. # 最新 1, 最热 2, 女生 3, 星空 4
  80. # 爬取类型为3的图片(女生),一共准备爬取20000张
  81. wall_paper_id = 1
  82. wall_paper_count = 10
  83. while(True):
  84.  
  85. # 换行符
  86. print('\n\n')
  87.  
  88. # 选择壁纸类型
  89. wall_paper_id = input("壁纸类型:最新壁纸 1, 最热壁纸 2, 女生壁纸 3, 星空壁纸 4\n请输入编号以便选择5K超清壁纸类型:")
  90. # 判断输入是否正确
  91. while(wall_paper_id != str(1) and wall_paper_id != str(2) and wall_paper_id != str(3) and wall_paper_id != str(4)):
  92. wall_paper_id = input("壁纸类型:最新壁纸 1, 最热壁纸 2, 女生壁纸 3, 星空壁纸 4\n请输入编号以便选择5K超清壁纸类型:")
  93.  
  94. # 选择要下载的壁纸数量
  95. wall_paper_count = input("请输入要下载的5K超清壁纸的数量:")
  96. # 判断输入是否正确
  97. while(int(wall_paper_count) <= 0):
  98. wall_paper_count = input("请输入要下载的5K超清壁纸的数量:")
  99.  
  100. # 开始爬取5K高清壁纸
  101. print("正在下载5K超清壁纸,请稍等……")
  102. crawler_photo(int(wall_paper_id), int(wall_paper_count))
  103. print('\n下载5K高清壁纸成功!')

初学者对Python的概念模糊不清的,Python能做什么,学的时候该按照什么线路去学习,学完往哪方面发展,想深入了解,详情可以复制有道云笔记链接到浏览器打开了解:http://note.youdao.com/noteshare?id=e4fa02e7b56d7909a27674cdb3da08aa

学习视频资料、开发工具等都有免费分享,还有专业的老师答疑

Python爬虫教程-爬取5K分辨率超清唯美壁纸源码的更多相关文章

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

    目录 爬取5K分辨率超清唯美壁纸 简介 编写思路 使用教程 演示图片 完整源代码 @ 爬取5K分辨率超清唯美壁纸 简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空 ...

  2. from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...

  3. Python爬虫之爬取淘女郎照片示例详解

    这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...

  4. Python爬虫之爬取慕课网课程评分

    BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...

  5. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  6. Python爬虫之爬取站内所有图片

    title date tags layut Python爬虫之爬取站内所有图片 2018-10-07 Python post 目标是 http://www.5442.com/meinv/ 如需在非li ...

  7. python爬虫实战---爬取大众点评评论

    python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...

  8. Python爬虫教程-15-读取cookie(人人网)和SSL(12306官网)

    Python爬虫教程-15-爬虫读取cookie(人人网)和SSL(12306官网) 上一篇写道关于存储cookie文件,本篇介绍怎样读取cookie文件 cookie的读取 案例v16ssl文件:h ...

  9. python爬虫项目-爬取雪球网金融数据(关注、持续更新)

    (一)python金融数据爬虫项目 爬取目标:雪球网(起始url:https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_ ...

随机推荐

  1. 消息队列(二)--- RocketMQ-NameServer阅读

    概述   所有broker在启动的时候都会向NameServer进行注册,对它进行发送心跳包. 源码阅读 我们先从 NamesrvStartup这个类分析 public static void mai ...

  2. 计算机网络 --- IP 地址

    概述 这一节主要了解网络中有关ip的知识,包括子网掩码等等,还有 ipv6的生成规则等等. 基本的ip结构 分类寻址 主要分为 ABCDE ,由两部分组成,网络号 + 主机号 . 可以看到 A 和 C ...

  3. ios 用touchend事件 pc用click touchend击穿

    var clickEvent = (function() { if ('ontouchend' in document.documentElement === true) return 'touche ...

  4. chkconfig 原理 (企业应用)

    企业应用:如何让某个服务开机自启动 chkconfig --level 345 serviceName on chkconfig --level 345 serviceName off chkconf ...

  5. 14 用DFT计算线性卷积

    用DFT计算线性卷积 两有限长序列之间的卷积 我们知道,两有限长序列之间的卷积可以用圆周卷积代替,假设两有限长序列的长度分别为\(M\)和\(N\),那么卷积后的长度为\(L=M+N-1\),那么用 ...

  6. 学好Linux必备知识

    鸟哥的私房菜中提到学好Linux必备的几种技能: 1.  计算器概论不硬件相关知识: 因为既然想要走Linux这门路,信息相关癿基础技能也丌能没有啊! 所以先理觋一下基础癿硬件知识,丌用一定要全懂啦! ...

  7. CSS3绘制不规则图形,代码收集

    三角形系列(三角形.倒三角.左三角.右三角.左上三角.右上三角.左下三角.右下三角) 主要用到的是:宽度高度设置为0, border的各个边的设置(各个边的透明或不透明): .triangle-up ...

  8. 【知识学习】Sublime Text 快捷键精华版

    Sublime Text 快捷键精华版 Ctrl+Shift+P:打开命令面板 Ctrl+P:搜索项目中的文件 Ctrl+G:跳转到第几行 Ctrl+W:关闭当前打开文件 Ctrl+Shift+W:关 ...

  9. mysql数据库数据备份还原

    1.直接在命令行里面执行 备份一个数据库:mysqldump -h server -u username -p password db_name > database-sqlbkp_`date ...

  10. 【Hibernate 多对多】

    HibernateManytoMany public class HibernateManytoMany { //演示维护第三张表 @Test public void testTable2() { S ...