首页 > 解决方案 > 在 Python 中从 ColorHunt.co 获取调色板

问题描述

我正在为 Blender 创建一个颜色插件,我正在尝试从著名站点检索调色板。我想从ColorHunt开始。基本上,正如您在网站上看到的,有很多调色板。我想在一个包含该调色板中颜色的十六进制值的数组中获取所有可用的调色板,例如:(“FF0000”、“ab1234”、“cd337H”、“ff0066”)等等。那可能吗?

标签: python

解决方案


是的,至少在今天是有可能的。
但是,如果您正在构建一个想要在商店发布的应用程序,请不要使用此方法,因为我们要从中获取调色板的端点可能会更改,恕不另行通知。

故事

所以,我一直在寻找一种方法来获取那些美妙的调色板,在与 Postman 进行了几次尝试后,我发现 Gal Shir(或构建网站的人)使用 POST 方法获取调色板列表。

长话短说,您可以创建一个 POST 请求来获取这些调色板。

基本上,有 4 种类型的请求:随机的、新的、时尚的和流行的。
请求的参数如下:

  • 标题 Content-Type 是application/x-www-form-urlencoded; charset=UTF-8
  • 端点是https://colorhunt.co/php/feed.php
  • 请求正文是{'step': 0, 'sort': 'random','tags': ''}

正如我告诉过你的,有 4 种类型的请求,所以你可以将sort密钥从更改random为任何其他类型。

您将得到的响应属于以下类型,由您自行解析: [{"code":"febfb3e1396c96d38cd0f9b1","likes":"1682","date":"4 years"},{"code":"2d4059ea5455f07b3fffd460","likes":"10191","date":"5 years"},...]

为简单起见,以第一个代码为例febfb3e1396c96d38cd0f9b1
您会看到一个图案,它是一个单一调色板的 4 个十六进制颜色代码系列:febfb3 | e1396c | 96d38c | d0f9b1.

警告!

我警告您仅将此方法用于“娱乐”目的 (>.<),因为它不是官方 API,而且我不知道 Gal Shir 是否会构建一个(他说过一次)或者他不会不想。事实上,端点可能会再次改变。仅供参考,上个月我可以从https://colorhunt.co/hunt.php端点获取调色板,但反应完全不同。

祝大家编码愉快!


推荐阅读