文 | 豆豆

来源:Python 技术「ID: pythonall」

电脑默认的壁纸简直不是太难看,今天给大家介绍一个拥有海量壁纸的网站,即使你一天换一张也取之不尽用之不竭,网址如下:

https://unsplash.com/

分析网站

这个网站基本上会定时更新自己的图库,都是高清无码的哦,质量只是不用说,做电脑壁纸实在是不二之选。

作为技术人当然不能一张一张去手动下载啦,这操作不符合我们技术人的身份气质,于是我研究了下网站的结构,发现当下拉页面时,网页会不断请求服务器获取新的图片信息,简单分析完网络请求之后发现了天机。

返回的信息是一个列表,每个列表中的有一个 urls 的字段,这个字段中包含很多个链接,一看就是根据图片清晰度做的区分,我们直接打开 full 链接看看是否是我们要找的图片。

至此,我们已经摸清了网站的图片加载流程,简言之就是通过调整 api 请求中的 page 参数来获取不同页码的请求结果,然后将图片 url 从请求结果中解析出来并下载到本地即可。

下载图片

首先需要一个下载图片的函数,该函数接受一个图片的路径和名称,然后将图片下载到当前目录。

import urllib.requestdef download_img(img_url, file_name):print(F'downloading {file_name}, img_url = {img_url}')request = urllib.request.Request(img_url)try:response = urllib.request.urlopen(request)if (response.getcode() == 200):with open(file_name, "wb") as f:f.write(response.read())  # 将内容写入图片return 'ok'except:return "fail"

然后就是处理结果集的函数了,该函数负责解析出图片路径,然后调用下载函数直接下载。

# 处理结果集
def deal_result(result, page):index = page * 12 # 每页有 12 张图片,所以这里需要转换下for i in range(len(result)):img_url = result[i]['urls']['full']index += 1download_img(img_url, str(index) + '.png')

接下来就是网络请求函数,非常简单,直接将请求结果返回即可。

import requests as req# 发送请求
def send_get(url, params):time.sleep(2)response = req.get(url, headers=None, params=params)return response.text

最后通过不断循环自增 page 来模拟翻页,并在入口函数中调用其即可。

# 循环翻页
def loop():for i in range(3):url = 'https://unsplash.com/napi/photos?per_page=12&page=' + str(i)print(F'page = {i}, url = {url}')response = json.loads(send_get(url, None))deal_result(response, i)if __name__ == '__main__':loop()

先来看看程序日志。

打开资源管理器看下结果。

至此,大功告成。

总结

今天派森酱给大家介绍了一个拥有海量高清无码图片的抓取方法,40 行代码即可轻松实现一键下载海量高清图片,美滋滋,再也不担心没有好看的图片做壁纸了。小伙伴们平时都是怎么找壁纸的呢,欢迎在评论区分享你的独家秘密哦~

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

神秘礼包获取方式】

识别文末二维码,回复:豆豆

神器 | 一键下载海量高清无码壁纸相关推荐

  1. 分享20个无版权的高清无码图库站

    今天这组网站比较有特色,有专门分享美食图片的,有专门分享复古图片的,各领风骚,质量都是一顶一的棒.下面就是20个无版权的高清无码图库站,记得收藏啊. 您可能感兴趣的相关文章 35款精致的 CSS3 和 ...

  2. Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)...

    二维码的扫描,二维码的锁定与描边,二维码的扫描范围,二维码的生成(高清,无码,你懂得!),识别相册中的二维码 扫描二维码用到的三个重要对象的关系,如图: 1.懒加载各种类 // MARK: - 懒加载 ...

  3. 电脑动态壁纸_每日壁纸—水彩插画少女动漫手机高清无水印壁纸第二波

    - End - 猜你喜欢: 看新闻竟然可以赚钱??? 朋友圈千万别设置三天可见!哈哈哈~ 圣诞节,你收到过的奇葩礼物是什么? 教你玩赚支付宝红包攻略,如何领大额红包!!! 哈哈哈~现在的骗子真的一届不 ...

  4. 二次元高清无水印壁纸

    高清无水印壁纸: 亚丝娜 我妻由乃 伊蕾娜 阿库娅 艾丽斯 艾米莉亚 蕾姆 楪祈 维克多利亚 瑞吉尔 白井黑子 山乃柠檬 千石抚子 藤和艾莉欧

  5. 电子漫画系列套图更新11张,共计83张,附高清无码下载链接

    编辑:晓宇,排版:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 电子漫画 电子漫画系列作品,从18年开始陆陆续续更新了多次,新关注的小伙伴可能还不知道在哪里获取,好多人在后台找我要,很多 ...

  6. 分享20个无版权的高清无 码图库站

    今天这组网站比较有特色,有专门分享美食图片的,有专门分享复古图片的,各领风骚,质量都是一顶一的棒.下面就是20个无版权的高清**图库站,记得收藏啊. Compfight Compfight 是一个图片 ...

  7. 华为 A199 / Ascend G710摄像头拍摄样张 多图 高清无码 慎入

    前方高能反应,华为 A199 / Ascend G710摄像头拍摄样张,多图.高清.无码!   废话少说,直接来个连拍的,发现华为A199的连拍速度还不错,不过连拍的张数比较少 今天的天气灰蒙蒙的,但 ...

  8. GitHub强势开源,这个神器,支持12个视频片源、高清无码、能下载、全平台 !!...

    点击上方"Github爱好者社区",选择星标 回复"资料",获取小编整理的一份资料 作者:GG哥 来源:GitHub爱好者社区(github_shequ) 这是 ...

  9. 用深度神经网络搭建马赛克神器,高清无码效果感人

    目录 1.项目背景 2.适用范围 3.使用方法 1.项目背景 相信一提起马赛克这个东西,不少小伙伴都痛心疾首,虽然最近几年也频繁传出有在研发去除马赛克的软件,一直没有成品问世.不过最近一位程序员及经过 ...

最新文章

  1. string:值类型?引用类型?[转]
  2. 数据结构:栈实现简易计算器
  3. c语言用define预处理命令定义,C语言程序设计第八章预处理命令..doc
  4. 插值法补齐缺失数据_关于数据清洗的常见方式
  5. while(1); 作用
  6. c语言文件加密异或操作,用异或算法实现文件的简单加密
  7. 中科大快手提出多模态交叉注意力模型:MMCA,促进图像-文本多模态匹配!
  8. 富士康java应届生工资待遇_应届毕业生入职富士康渠道不一样,收入相差悬殊...
  9. 常用的Ant风格书写
  10. python-字符串基础
  11. 战神背光键盘如何关系_神舟战神K660E-i7D8红色背光键盘,深夜战火不熄!
  12. std::string.assign()的用法-爱情滕-搜狐博客
  13. 遇到系统问题,先看OS再看CPU
  14. wifi分析仪怎么看哪个信道好_专业的WiFi检测工具有哪些?如何解决wifi信号不好?...
  15. 初学者用什么数位板好,手绘板选择注意什么?
  16. Opencv实现多张JPG转GIF
  17. pngquant failed to build, make sure that libpng-dev is installed
  18. java.sql.BatchUpdateException: Lock wait timeout exceeded; try restarting transaction
  19. Could not find conduit initiator for address
  20. numpy学习:np.subtract.outer

热门文章

  1. VMware Workstation虚拟机无桥接模式以及主机为无线的桥接配置
  2. python dask_使用 Dask 在 Python 中进行并行计算 | Linux 中国
  3. Material-UI 5 即将推出
  4. C++中有符号与无符号
  5. 软件测试学习——等价类划分法
  6. 测试:你惯用右脑还是左脑
  7. 惭愧!直到今天才真正明白为什么int型的取值范围是-2^31~2^31-1
  8. python异常类封装_在Python中封装异常
  9. matlab+BP神经网络实现手写体数字识别
  10. 计算机2级word信函,计算机二级之word