Beispiel #1
0
        public static async Task <List <CurseAddon> > Scrape(HttpClient httpClient, int tries, int from, int to)
        {
            List <CurseAddon> addons = new List <CurseAddon>();

            for (int i = from; i <= to; i++)
            {
                await Task.Delay(10);

                string page = await DownloadPage(httpClient, tries, i);

                if (string.IsNullOrEmpty(page))
                {
                    logger.LogWarning("MISSED page: " + i);
                }
                else
                {
                    try
                    {
                        List <CurseAddon> addonsFromPage = HtmlAgilityParser.FromCursePageToCurseAddons(page);
                        addons.AddRange(addonsFromPage);
                        logger.LogInformation("Page: " + i + ", Added: " + addonsFromPage.Count);
                    }
                    catch (Exception e)
                    {
                        logger.LogError(e, nameof(Program.Scrape));
                    }
                }
            }

            return(addons);
        }