Exemplo n.º 1
0
        //foreach(var pair in countries)
        //    Console.WriteLine("{0} - {1}", pair.Key, pair.Value);

        public List <Bank> ParseBanks()
        {
            Console.WriteLine("Start parsing banks... ");
            IConfiguration   config  = Configuration.Default.WithDefaultLoader();
            IBrowsingContext context = BrowsingContext.New(config);
            //ParseCredits(context, "https://myfin.by/bank/belarusbank");
            IDocument   document   = context.OpenAsync("https://myfin.by/banki").Result;
            IElement    banksTable = document.QuerySelectorAll("table[class*='rates-table-sort']").First();
            List <Bank> bankList   = new List <Bank>();
            IHtmlCollection <IElement> banksHtml = banksTable.QuerySelectorAll("tr[class*='tr-tb']");
            int i = 0;

            foreach (IElement bankRow in banksHtml)
            {
                i++;
                Console.WriteLine($"{i}/{banksHtml.Count()}");
                string       bankName;
                string       bankAddress;
                string       bankURL;
                List <Phone> bankPhoneNumbers = new List <Phone>();
                IHtmlCollection <IElement> currentBankColumns = bankRow.QuerySelectorAll("td");
                bankName = currentBankColumns[0].QuerySelector("span").InnerHtml;
                bankURL  = "https://myfin.by" + currentBankColumns[0].QuerySelector("a").GetAttribute("href");
                foreach (IElement phoneNumberElement in currentBankColumns[1].QuerySelectorAll("a[class*='phone']"))
                {
                    bankPhoneNumbers.Add(new Phone {
                        PhoneNumber = phoneNumberElement.InnerHtml.Replace("+", "").Replace("-", "").Replace(" ", "")
                    });
                }
                bankAddress = currentBankColumns[2].TextContent.Replace("\n", "").Trim();
                Bank bank = new Bank
                {
                    ID          = Guid.NewGuid(),
                    Name        = bankName,
                    Address     = bankAddress,
                    Email       = infoForBank[bankName][0],
                    BankAccount = infoForBank[bankName][1],
                    BIK         = infoForBank[bankName][2],
                    Information = infoForBank[bankName][3],
                    DepositList = ParseDeposits(context, bankURL),
                    CreditList  = ParseCredits(context, bankURL),
                    PhoneList   = bankPhoneNumbers,
                };
                bankList.Add(bank);
                //return bankList;
            }
            context.Dispose();
            document.Dispose();
            Console.WriteLine("complete");
            return(bankList);
            //return null;
        }
        /// <inheritdoc />
        public Task Dispose()
        {
            DebugLog.RemoveListener(SteamLogCallback);

            context?.Dispose();
            client?.Disconnect();

            foreach (IDisposable disposable in disposables)
            {
                disposable?.Dispose();
            }

            client  = null;
            apps    = null;
            user    = null;
            manager = null;

            return(Task.CompletedTask);
        }
 /// <inheritdoc />
 public Task Dispose()
 {
     context?.Dispose();
     return(Task.CompletedTask);
 }
Exemplo n.º 4
0
 public void Dispose()
 {
     _context.Dispose();
     _document.Dispose();
 }