public static SteamApp ParsePage(int appId, string html) { if (string.IsNullOrWhiteSpace(html)) { throw new ArgumentNullException(nameof(html)); } try { var app = SteamApp.NewSteamApp(appId, html); var htmlDocument = new HtmlDocument(); var htmlCleaned = html.Replace("\"", "'"); htmlDocument.LoadHtml(htmlCleaned); var documentNode = htmlDocument.DocumentNode; var titleNode = documentNode.SelectSingleNode($"//div[@class='{AppTitleClass}']"); app.Title = titleNode.InnerHtml.Trim(); var packageNodes = documentNode.SelectNodes($"//div[@class='{PackageClass}']").ToArray(); foreach (var packageNode in packageNodes) { AddPackage(app, packageNode); } return(app); } catch (Exception) { throw new InvalidAppException(appId); } }