您好,我想介绍instiz,它是 Python 3+ 的iChart 图表网站的包装器。 iChart 是韩国音乐的实时图表网站。

GitHub 徽标Chromadream/instiz

用于 iChart K-Pop 图表分数的仅限 Python3 的库。

1000004 instiz

仅用于 iChart K-Pop 图表分数的 Python3 库。

代码风格:黑色

安装

pip install instiz

入门

入门很容易。下面的例子是获取 iChart 实时图表的前 10 名。

从即时导入 iChart

图表 \u003d iChart()

顶部_10 \u003d ichart.realtime_top_10()

类型提示

如果您使用 Python 3.7+ 的类型提示功能,则可以从instiz.models模块导入用于图表返回类型的类型。

从 instiz.models 导入条目

def get_name(entry: Entry) -> str

返回 entry.title

艺术家姓名

现在可以轻松获取艺术家的韩文名和英文名,以及从 iChart 网站提供的原始艺术家名。 Nice title 属性将始终返回英文名称,除非不可用。如果其中一个名称不可用,则该属性将返回一个空字符串。

来自 instiz

...

在 GitHub 上查看

背景

我最近开始以技术版主的身份为/r/kpop投稿。看一眼该组织可能会发现 Reddit 社区使用这么多代码是很不寻常的,但它确实帮助了版主的工作,并为社区用户提供了增值。

为什么存在instiz?

subreddit 有一个实时的歌曲图表小部件,它是每小时从 iChart 中抓取的。

[旧图](https://res.cloudinary.com/practicaldev/image/fetch/s--R-g5aI-o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// thepracticaldev.s3.amazonaws.com/i/uwno3xssdb4cwc8ndhys.png)

但是,随着 Reddit 推动重新设计,需要对重新设计的小部件进行移植,这样旧站点和新站点的用户之间就不会出现功能差异。于是,我开始了移植尝试。然而,看一眼当前运行的小部件的源代码就会发现一个可怕的嵌套混乱。不仅如此,scraper 和 parser 与实际的更新功能紧密耦合。

最初创建instiz是为了在抓取过程和小部件更新过程之间提供关注点分离。它还可以用于任何类型的脚本、机器人或任何利用 iChart 数据的程序。

特点

尽管instiz的主要功能相当简单,即从 iChart 中抓取和处理数据,但其中还有一些值得注意的附加功能。

  • 理智的艺术家姓名处理。

在 iChart 的网站上,艺术家姓名的格式不一致。示例包括제니 (JENNIE)TWICE (트와이스)아이유(IU)Queen(퀸)。instiz 确保对韩文和英文名称进行预处理,并且图书馆的用户可以轻松检索,而无需额外处理。

代码示例:


from instiz import iChart

ichart = iChart()
first_place = ichart.get_next_entry()
nice_title = first_place.nice_title # "JENNIE - SOLO"
raw_artist_name = first_place.artist.raw_name # "제니 (JENNIE)"
english_artist_name = first_place.artist.english_name # "JENNIE"
korean_artist_name = first_place.artist.korean_name # "제니"

  • API 刷新。

提供了刷新功能,因此开发人员不必在每次需要一组新数据时都初始化该类的新实例。

代码示例:


from instiz import iChart

ichart = iChart()
top_10 = ichart.realtime_top_10()
ichart.refresh()
top_10 = ichart.realtime_top_10()

  • 它是完全开源的。

instiz在 MIT 下发布,对于想要开始研究开源文化的人们来说,有一些“好的第一期”。但是,我意识到开源项目中的某些项目通常在instiz中丢失。请通过提出拉取请求帮助我实现这一点。

谢谢。

感谢您一直阅读这篇文章。对此,我真的非常感激。祝你有美好的一天。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐