2017-09-10 9 views
-1

特定のユーザーの「My Anime List」プロファイルからユーザーの統計情報を取得する方法を見つけようとしており、データを取得する方法がわかりません。私は彼らのプロフィール(見つけたMyAnimeList.net/profile/<insert user name here>)から彼らの完了した、見て、落としたものを見つけることを探しています。不具合ボットでMALからユーザー統計を取得する

どうすればいいですか?

+0

は「質問をしたときにSO、正確に何があなたに実行していると何をしている問題についての情報を提供しようとするようこそ今まで試みました。 [良い質問](https://stackoverflow.com/help/how-to-ask)の質問に関するコミュニティのガイドラインを参照してください – LightBender

+0

ありがとうございます。だから私は十分に私はちょうど私が得るページから特定のデータを取得する方法がわかりません十分に簡単にウェブサイトを得ることができます。各ユーザーはプロフィール内に統計情報を持っています。これは、視聴した日、平均スコア、見ている、完了した、保留中、落ちている、見たい、総エントリー、再視聴したエピソードです。 これらはプロファイルのフロントページに表示され、取得するデータです。私は正直なところ、データを引き出してオンラインで検索することができるところから始めることはほとんど助けにはなりませんでした。 –

答えて

1

公式のMyAnimeList APIには、ユーザープロファイル情報を取得するためのエンドポイントはありません。あなたは何ですかすることができますは、ページをこすります。

  • ありがたいことに、MyAnimeListはユーザープロファイル用のXMLを取得できるため、HTMLを解析するよりはるかに簡単です。 Here's an example
  • XMLプロファイルを取得した後、System.Xml名前空間のクラス/メソッドを使用してC#で解析できます(XDocument.Parse()など)。 StackOverflow上でこれを行うのに役立つ多くのリソースがあります。

最初にウェブからこのデータを取得する方法がわからない場合は、RestSharpまたはFlurlのようなライブラリを調べることをおすすめします。彼らはあなたのためにウェブから情報を得るための定型文を抽象的な方法で抽象化するので、コーディングに集中することができます。 XML解析とWeb要求の両方をスキップする場合は、a libraryを実行してください。

あなたのDiscord.NETボットをきれいに保つために、MyAnimeListServiceクラスをお持ちで、このウェブリクエスト/スクラップインをすることをお勧めします。あなたが使用しているモジュールに注入することができます。!animeコマンドを実行し、そこでMALプロファイルデータを使用することに重点を置いています。これにより、データをDiscordユーザーに提示するロジックからデータを取得するロジックを分離します。あなたはDiscord.NET hereで依存関係注入について読むことができます。あなたは、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 
    } 
} 
+1

ありがとうございます。信じられないほど遅い返信をして申し訳ありません、私はちょうどそれに取り組んで周り。リンクしたリソースは信じられないほど役に立ちました。 –

関連する問題