public async Task <IActionResult> ParsePage( ParsePageDto model ) { try { var responsePayload = await _parsePageService.ParsePageAsync(model); return(Ok(responsePayload)); } catch (Exception ex) { return(BadRequest(new { ex.Message })); } }
public async Task <ParsePageReturnDto> ParsePageAsync(ParsePageDto model) { var web = new HtmlWeb { AutoDetectEncoding = false, OverrideEncoding = Encoding.UTF8 }; var htmlDoc = await LoadPage(model.Url, web); var rootAddress = web.ResponseUri.Host; var fullRootAddress = web.ResponseUri.AbsoluteUri.Split(rootAddress)[0] + rootAddress; var pageImages = new List <string>(); pageImages.AddRange(GetPageFavicons(htmlDoc, fullRootAddress)); pageImages.AddRange(GetPageImages(htmlDoc, fullRootAddress)); pageImages = pageImages.Distinct().ToList(); return(new ParsePageReturnDto(GetPageTitle(htmlDoc), model.Url, pageImages, GetPageTexts(htmlDoc, model.MinTextLength, model.MaxTextLength))); }