原标题:程序员如何一键“Get”高清壁纸?

作者 | 沈仲强

责编| 郭 芮

Unsplash是个高清摄影图片的网站,里面的照片非常精美,分辨率也很高。最重要的是,所有的照片都没有版权,无须向原作者申请授权,即可任意使用。

最近闲暇的时候写了个爬虫爬了下Unsplash上的那些高赞的壁纸,爬虫原理非常简单,就是爬取所有的壁纸,然后筛选那些赞数最高的图片。

第一步我们爬取Unsplash所有的壁纸图片信息,并存入MongoDB。

代码如下:

defget_image_by_page(page_no):

url = "https://unsplash.com/napi/collections/1065976/photos?page={}&per_page=10&order_by=latest&share_key=a4a197fc196734b74c9d87e48cc86838".format(page_no)

r = requests.get(url, verify= False)

data = r.json()

returndatadef get_images():

page_no = 1

client = pymongo.MongoClient()

db = client[ "unsplash"]

whileTrue:

result = get_image_by_page(page_no)

iflen(result) == 0:

break

db.wallpaper.insert_many(result)

print(page_no)

page_no += 1

time.sleep( 10)

爬下来的数据里面包含了几个重要的字段。

我们最关心的就是likes这个字段,这个里面存了图片的赞数,后续我们筛选高赞图片的时候会用到。

还有两个字段分别是width和height,这是图片的宽度和高度,因为我们这里关注的是桌面壁纸,所以只关心宽度大于高度的那些壁纸。

爬完图片信息后,接下来我们从数据库筛选高赞图片。

代码如下:

def get_top_liked_images():

client = pymongo.MongoClient()

db = client[ "unsplash"]

cursor = db.wallpaper.aggregate([

{ "$match": { "likes": { "$gte": 1000}}}

])

path= os. path.dirname(__file__)

path= os. path.join( path, "wallpaper")

foritem incursor:

url = item[ "urls"][ "raw"]

width = item[ "width"]

height = item[ "height"]

ifwidth <= height:

continue

r = requests.get(url, verify=False)

filename = "{}.jpg". format(int( time. time()))

filepath = os. path.join( path, filename)

with open(filepath, "wb") as f:

f. write(r.content)

print(filepath)

time.sleep( 10)

这里我们会根据图片信息里的URL去下载图片。需要注意的是,如果过于频繁地爬取Unsplash,会导致爬虫被封,所以这里每次下载完都会睡个10秒钟。

以上,就可以爬取出精美的高清壁纸啦。

作者:沈仲强,资深Python程序员,先后供职于Morgan Stanley和ebay,擅长爬虫、Web开发、数据分析。

本文系作者投稿,版权归原作者所有。返回搜狐,查看更多

责任编辑:

python程序员专用壁纸_程序员如何一键“Get”高清壁纸?相关推荐

  1. 程序员如何一键“Get”高清壁纸?

    作者 | 沈仲强 责编 | 郭   芮 如何挑战百万年薪的人工智能! https://edu.csdn.net/topic/ai30?utm_source=csdn_bw Unsplash是个高清摄影 ...

  2. 壁纸小程序源码-WordPress开发暗黑系列流量主收益高清壁纸

    品牌:wordpress 语言:PHP 大小:4 MB 规格:整站源码 授权:免授权 数据库:Mysql 移动端:小程序 源文件:完全开源(含全部源文件) 1.本套程序基于WordPress开发,可安 ...

  3. Python爬虫实战 使用线程池批量爬取必应1080P高清壁纸

    本文纯粹为了技术学习,内容如有侵权,请告知! 目标URL:https://bing.ioliu.cn 爬取的图片 Python用到的主要模块 import requests from lxml imp ...

  4. Python爬虫实例 wallhaven网站高清壁纸爬取。

    文章目录 Python爬虫实例 wallhaven网站高清壁纸爬取 一.数据请求 1.分析网页源码 2.全网页获取 二.数据处理 1.提取原图所在网页链接 2.获取高清图片地址及title 三.下载图 ...

  5. 多线程下载王者荣耀高清壁纸(过程超详细)

    文章分为单线程和多线程两个部分,选择单线程一个一个下载速度会很慢,多线程下载可以明显提升速度.但先用单线程写出代码,再在此基础上改动成多线程,思路会更加清晰,对初学者也更加友好! 单线程下载王者荣耀壁 ...

  6. 个性好看的高清壁纸,私人收藏,存货都在这了哦

    个性好看的高清壁纸,私人收藏,存货都在这了哦 每个人每天都离开电脑的使用,一张好的电脑壁纸可以点缀电脑这个专属于你的私人空间,心情也会大不一样. 然而一张壁纸看久了也难免审美疲劳,想找到心怡的壁纸也不 ...

  7. 一个拥有海量优质高清壁纸的软件!

    Hello大家好,今天小R为各位小伙伴们分享的是一个最专业的壁纸类应用,提供海量优质高清壁纸. 它可以自动和手动裁剪功能,定时切换壁纸,让手机时刻保持好心情:还有试试手气.按颜色筛选壁纸等特色功能等您 ...

  8. 精美高清壁纸:30款音乐主题壁纸免费下载

    音乐有数百种不同的类型,每个人自己都有特定喜欢的类别.音乐是一种独特的艺术形式,远不止只是从口或从乐器发出声音.在这个展示中,你会发现最好的音乐主题壁纸,相信你一定能找到喜欢的来装饰电脑桌面. 您可能 ...

  9. oracle中图片是黑色的,黑色高清壁纸

    黑色是最深邃的一种颜色,总会给人一种别样的意境,为大家带来黑色酷炫桌面高清壁纸,简约而不失大气,酷炫高冷的桌面壁纸等您来下载,壁纸完全免费. 黑色酷炫桌面高清壁纸素材 黑色简介 黑色基本上定义为没有任 ...

  10. WordPress微信壁纸小程序源码 高清壁纸下载小程序

    源码介绍 WordPress微信壁纸小程序源码 高清壁纸下载小程序 [功能特点] 精美的壁纸展示页面,搜索喜欢的壁纸,下载壁纸需观看激励视频广告,看一次,可免费下一天,热门壁纸榜单,壁纸收藏.分享功能 ...

最新文章

  1. 通过oracle任务计划定期备份数据库
  2. (转)Linux(Centos)之安装Java JDK及注意事项
  3. WPF学习之路(六)Command
  4. 浏览器打不开网页,但是还可以聊qq?
  5. 漏洞工具:nmap和nessus
  6. uboot主Makefile之9——2589行 x210_sd_config目标
  7. 容器编排技术 -- Kubernetes 为 Namespace 设置最小和最大内存限制
  8. Design7:数据删除设计
  9. MariaDB 10.4.9 发布,MySQL 分支数据库
  10. 虚函数与纯虚函数区别
  11. 优化更新语句中的标量子查询
  12. Pygame 安装教程
  13. Unity项目的框架设计
  14. Talib macd函数探究
  15. Chrome浏览器被篡改主页的解决办法
  16. WIN10直接运行自定义软件
  17. golang 根据生日计算星座和属相
  18. flutter 收起软键盘
  19. 面向对象设计原则(一)单一原则
  20. 服务器空间不足的原因有哪些

热门文章

  1. 微信测试拉黑的软件,如何检测微信里有没有人把你拉黑?教你一招!
  2. c语言错误码2,平方根2.我做过C语言的一些错误
  3. 微服务:知识点梳理(SOA、服务拆分、服务治理、分布式事务)
  4. 实施运维企业面试题-5
  5. 辐射定标、辐射校正、大气校正、正射校正概念
  6. win11还原win10磁贴方法ExplorerPatcher,替代Start 11、StartALLBack(开源免费~)
  7. JSP程序设计第二版--附带实验代码
  8. 集成电路封测行业科普
  9. 金蝶计算机会计实验报告总结,会计实训总结(精选5篇)
  10. 常用DB9外设接口定义