python程序员专用壁纸_程序员如何一键“Get”高清壁纸?
原标题:程序员如何一键“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”高清壁纸?相关推荐
- 程序员如何一键“Get”高清壁纸?
作者 | 沈仲强 责编 | 郭 芮 如何挑战百万年薪的人工智能! https://edu.csdn.net/topic/ai30?utm_source=csdn_bw Unsplash是个高清摄影 ...
- 壁纸小程序源码-WordPress开发暗黑系列流量主收益高清壁纸
品牌:wordpress 语言:PHP 大小:4 MB 规格:整站源码 授权:免授权 数据库:Mysql 移动端:小程序 源文件:完全开源(含全部源文件) 1.本套程序基于WordPress开发,可安 ...
- Python爬虫实战 使用线程池批量爬取必应1080P高清壁纸
本文纯粹为了技术学习,内容如有侵权,请告知! 目标URL:https://bing.ioliu.cn 爬取的图片 Python用到的主要模块 import requests from lxml imp ...
- Python爬虫实例 wallhaven网站高清壁纸爬取。
文章目录 Python爬虫实例 wallhaven网站高清壁纸爬取 一.数据请求 1.分析网页源码 2.全网页获取 二.数据处理 1.提取原图所在网页链接 2.获取高清图片地址及title 三.下载图 ...
- 多线程下载王者荣耀高清壁纸(过程超详细)
文章分为单线程和多线程两个部分,选择单线程一个一个下载速度会很慢,多线程下载可以明显提升速度.但先用单线程写出代码,再在此基础上改动成多线程,思路会更加清晰,对初学者也更加友好! 单线程下载王者荣耀壁 ...
- 个性好看的高清壁纸,私人收藏,存货都在这了哦
个性好看的高清壁纸,私人收藏,存货都在这了哦 每个人每天都离开电脑的使用,一张好的电脑壁纸可以点缀电脑这个专属于你的私人空间,心情也会大不一样. 然而一张壁纸看久了也难免审美疲劳,想找到心怡的壁纸也不 ...
- 一个拥有海量优质高清壁纸的软件!
Hello大家好,今天小R为各位小伙伴们分享的是一个最专业的壁纸类应用,提供海量优质高清壁纸. 它可以自动和手动裁剪功能,定时切换壁纸,让手机时刻保持好心情:还有试试手气.按颜色筛选壁纸等特色功能等您 ...
- 精美高清壁纸:30款音乐主题壁纸免费下载
音乐有数百种不同的类型,每个人自己都有特定喜欢的类别.音乐是一种独特的艺术形式,远不止只是从口或从乐器发出声音.在这个展示中,你会发现最好的音乐主题壁纸,相信你一定能找到喜欢的来装饰电脑桌面. 您可能 ...
- oracle中图片是黑色的,黑色高清壁纸
黑色是最深邃的一种颜色,总会给人一种别样的意境,为大家带来黑色酷炫桌面高清壁纸,简约而不失大气,酷炫高冷的桌面壁纸等您来下载,壁纸完全免费. 黑色酷炫桌面高清壁纸素材 黑色简介 黑色基本上定义为没有任 ...
- WordPress微信壁纸小程序源码 高清壁纸下载小程序
源码介绍 WordPress微信壁纸小程序源码 高清壁纸下载小程序 [功能特点] 精美的壁纸展示页面,搜索喜欢的壁纸,下载壁纸需观看激励视频广告,看一次,可免费下一天,热门壁纸榜单,壁纸收藏.分享功能 ...
最新文章
- 通过oracle任务计划定期备份数据库
- (转)Linux(Centos)之安装Java JDK及注意事项
- WPF学习之路(六)Command
- 浏览器打不开网页,但是还可以聊qq?
- 漏洞工具:nmap和nessus
- uboot主Makefile之9——2589行 x210_sd_config目标
- 容器编排技术 -- Kubernetes 为 Namespace 设置最小和最大内存限制
- Design7:数据删除设计
- MariaDB 10.4.9 发布,MySQL 分支数据库
- 虚函数与纯虚函数区别
- 优化更新语句中的标量子查询
- Pygame 安装教程
- Unity项目的框架设计
- Talib macd函数探究
- Chrome浏览器被篡改主页的解决办法
- WIN10直接运行自定义软件
- golang 根据生日计算星座和属相
- flutter 收起软键盘
- 面向对象设计原则(一)单一原则
- 服务器空间不足的原因有哪些