晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片

admin 4个月前 (06-14) 科技 62 1

我经常会使用 unsplash, 这里面的图片异常清新,我的大多数文章的图片都是在这个网上找的,虽然也有同类型网站,然则用过一段时间以后基本都放弃了,图片质量乱七八糟,筛选历程太费劲。

然则 unsplash 接见速率是个大问题,我经常会由于图片无法加载而被劝退。

今天一时手痒,随手搜了 unsplash api 这个关键字,看官方有没有提供相关的 api 服务,还真有!

unsplash 提供了 2 个版本的 API。 一个是简朴版,主要是给小型应用,流量对照少的 app 使用,可以通过 source.unsplash.com 进入;一个是进阶版的开发者中央 API, 支持更多流量的 app 使用,可以通过 unsplash.com/developers 进入。

Source API

source api 提供的功效对照简朴。若是想获取一张随机图片,可以接见地址:

https://source.unsplash.com/random

这个地址会重定向到一张图片的地址,可以通过响应直接获取到一张图片。

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第1张

若是图片太大,加载速率也会对照慢。你可以在 url 后面添加尺寸,控制返回的图片巨细:

https://source.unsplash.com/random/800x600

若是原图片不是这种长宽比,unsplash 会对图片举行裁剪,某些部门就会丢失。若是你想保持图片的原始比例,可以把高度设成 0 :

https://source.unsplash.com/random/800x0

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第2张

小提示

无论是什么 API, 你都可以在最后使用 /800x0 这样的方式控制图片的巨细。

你可以指定获取某位作者的图片。好比我稀奇喜欢 Raamin ka 拍摄的照片。

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第3张

我可以把它的用户名小写以后再去掉空格,添加到 /user 的后面:

https://source.unsplash.com/user/raaminka

这样我就能获取到这位作者拍摄的随机妹子照片了。不要忘了,你同样是可以控制图片尺寸的。

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第4张

获取某个用户喜欢的照片:

https://source.unsplash.com/user/raaminka/like

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第5张

unsplash api 还支持搜索。通常来说,我都市凭据要写的文章的主题在 unsplash 上搜索图片。好比我要写一篇关于加密的文章,那我就会去搜索 encryption 相关的图片:

https://source.unsplash.com/800x0/?encryption

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第6张

你也可以组合多个差别的关键字。若是没有图片同时包罗这些关键字,则会优先匹配最后的关键字。

https://source.unsplash.com/800x0/?encryption,girl

现在我们每次接见同一个 API, 获得图片都不一样,由于是随机天生的。然则若是我们在每个 API 的后面添加 /daily 或者 /weekly, 则可以获得牢固的一张图。需要注重,这并不是说这些图片加倍热门或者质量更高,只是天天/每周保持稳定的随机图片而已。

https://source.unsplash.com/800x0/daily?sports

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第7张

Developer API

source api 的功效有限,而且若是接见频率太快总是会返回相同的图片。现在我们来看一下加倍专业的开发者 API。

开发者 API 不是马上就可以使用的。你需要先注册成为开发者,获得一个 access token, 之后你可以通过这个 token 接见 API:

https://api.unsplash.com/photos?client_id=fowflsfg

这个 API 还支持 3 个参数

param Description
page 第几页
per_page 每页的图片数目
order_by 排序 (可以是: latest, oldest, popular; 默认是: latest)

其他的 api 文档你都可以在官网上查看到,这里不复制粘贴了。developer api 相比 resource api 的利益在于他可以同时提供多张图片,同时能获取到厚实的信息,好比作者,日期,巨细等等。

在 unsplash 的主页只能看到编辑推荐的图片。没有最新的和盛行的可以看,以是我写了个简陋的外壳查看最新和盛行的图片。

首先界说一个函数获取图片:

def get_photos(order_by='popular', page=1, per_page=50):
    """通过developer api 获取图片。"""
    session = requests.Session()
    url = 'https://api.unsplash.com/photos'
    params = {
        "client_id""your access token",
        "order_by": order_by,
        "page": page,
        "per_page": per_page
    }
    resp = session.get(url, params=params).json()
    return resp

这样我可以获得 50 张图的 url 地址。

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第8张image.png

接下来使用 flask 搭建一个浅易服务:

app = Flask(__name__)

@app.route('/')
def index():
    pictures = get_photos()
    return render_template('index.html', pictures=pictures)

if __name__ == '__main__':
    app.run()

直接把图片地址返回给前端页面:

{% for pic in pictures %}
 <a href="{{ pic.urls.regular }}">
  <img src="{{ pic.urls.small }}">
    </a>
{% endfor %}

这样我通过接见内陆的 http://localhost:5000 就可以看到许多的图片。我没有对图片展示效果举行任何的美化,这种缭乱的气概实在也挺悦目的。后面若是用得多我在用 css 框架去做一下页面结构。

当我点击一张图片时,则可以进入这张图片的大图地址,而且可以直接作为链接地址应用到 markdown 当中,而在 unsplash 官方网站上不能直接获取链接地址。

晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片 第9张

最后弥补一点。这个小应用只是作为 unsplash 网站接见异常慢的时刻一个备选,并不能真正取代官网。对于图片的筛选和分类搜索操作,官网提供了异常人性化的操作,我就不重复造轮子了。对于这个备选服务,我把他设成了命令行形式,只需要在命令行输入 unsplash 就可以启动网站,还算对照利便。

点击 阅读原文 获取完整代码。

,

皇冠体育APP

皇冠体育APP是一个开放皇冠代理APP下载、皇冠会员APP下载、皇冠线路APP下载、皇冠登录APP下载的平台,皇冠体育APP上最新登录线路、新2皇冠网址更新最快,皇冠体育APP开放皇冠会员注册、皇冠代理开户等业务。

Allbet声明:该文看法仅代表作者自己,与本平台无关。转载请注明:晋城房屋出租:不需要爬虫也能轻松获取 unsplash 上的图片

网友评论

  • (*)

最新评论

  • Allbet开户 2020-06-14 00:03:24 回复

    Allbet Gmaing开户欢迎进入Allbet Gmaing开户(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。看一下就走,哈哈

    1

文章归档

站点信息

  • 文章总数:762
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1359
  • 评论总数:351
  • 浏览总数:33055