private async Task <ResultItem> CollectItem(ParseItem item) { var settings = item.ParseSettings; var result = new ResultItem { Info = item.Info, Result = new PriceResult { Url = item.ParseSettings.Url } }; IHtmlDocument document; try { document = await GetDocument(settings); } catch (Exception ex) { _logger.Error(ex, $"[{item.ToJson()}] ошибка при загрузке страницы"); result.Result.Status = ResultStatus.LoadFail; return(result); } var element = document.QuerySelector(settings.ElementSelector); try { var dirtyPrice = settings.IsContentSelector ? element.InnerHtml : element.Attributes[settings.AttributeName].Value; var price = ParseDirtyPrice(dirtyPrice); result.Result.Price = price; result.Result.Status = ResultStatus.OK; _logger.Info($"[{item.ToJson()}] успешно спарсили страницу: {result.ToJson()}"); } catch (Exception ex) { _logger.Error(ex, $"[{item.ToJson()}] ошибка при парсинге страницы"); _errorPareslogger.Error(ex, $"[{item.ToJson()}] ошибка при парсинге страницы : {document.ToHtml()}"); result.Result.Status = ResultStatus.LoadFail; } return(result); }