0

我试图找到一种从给定用户的“我的动漫列表”配置文件中检索用户统计信息的方法,但无法弄清楚如何检索数据。我希望从他们的个人资料中找到他们完成的、观看的、丢弃的等(使用 找到MyAnimeList.net/profile/<insert user name here>)。

我该怎么做呢?

4

1 回答 1

1

官方 MyAnimeList API 没有任何用于获取用户个人资料信息的端点。您可以做的是抓取网页。

  • 值得庆幸的是,MyAnimeList 可以为用户配置文件检索 XML,因此它比解析 HTML 容易得多。这是一个例子
  • 检索 XML 配置文件后,您可以使用命名空间中的类/方法在 C# 中解析它System.Xml,例如XDocument.Parse(). 在 StackOverflow 上有很多资源可以帮助您做到这一点。

如果您不确定如何首先从网络获取这些数据,我建议您查看RestSharpFlurl等库。他们抽象了很多样板,用于为您从网络获取信息,因此您可以专注于编码。如果您想完全跳过 XML 解析和 Web 请求,可以让为您完成。

为了让您的 Discord.NET 机器人保持清洁,我建议您使用一个MyAnimeListService类来执行此 Web 请求/抓取。然后您可以将其注入您用于(我假设)!anime命令的模块中,并专注于使用那里有 MAL 配置文件数据。这样,您就可以将获取数据的逻辑与将数据呈现给 Discord 用户的逻辑分开。您可以在此处阅读有关 Discord.NET 中的依赖注入的信息。假设您使用的是 C#,最终结果将是这样访问模块:

[Group("anime")]
public class AnimeModule : Module
{
    private AnimeModule(MyAnimeListService service)
    {
        Service = service;
    }

    private MyAnimeListService Service { get; }

    [Command]
    public async Task AnimeCommand(string username)
    {
        // call your service here
    }
}
于 2017-09-10T16:18:57.670 回答