我试图找到一种从给定用户的“我的动漫列表”配置文件中检索用户统计信息的方法,但无法弄清楚如何检索数据。我希望从他们的个人资料中找到他们完成的、观看的、丢弃的等(使用 找到MyAnimeList.net/profile/<insert user name here>
)。
我该怎么做呢?
我试图找到一种从给定用户的“我的动漫列表”配置文件中检索用户统计信息的方法,但无法弄清楚如何检索数据。我希望从他们的个人资料中找到他们完成的、观看的、丢弃的等(使用 找到MyAnimeList.net/profile/<insert user name here>
)。
我该怎么做呢?
官方 MyAnimeList API 没有任何用于获取用户个人资料信息的端点。您可以做的是抓取网页。
System.Xml
,例如XDocument.Parse()
. 在 StackOverflow 上有很多资源可以帮助您做到这一点。如果您不确定如何首先从网络获取这些数据,我建议您查看RestSharp或Flurl等库。他们抽象了很多样板,用于为您从网络获取信息,因此您可以专注于编码。如果您想完全跳过 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
}
}