Я пытаюсь получить innerText
класса. Это мой код:HTMLAgilityPack get class innerText
using (HttpClient clientduplicate = new HttpClient())
{
clientduplicate.DefaultRequestHeaders.Add("User-Agent",
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
using (HttpResponseMessage responseduplicate = await clientduplicate.GetAsync(@"https://www.investing.com/news/stock-market-news/warren-buffett:-i-bought-$12-billion-of-stock-after-trump-won-456954")
using (HttpContent contentduplicate = responseduplicate.Content)
{
try
{
string resultduplicate = await contentduplicate.ReadAsStringAsync();
var websiteduplicate = new HtmlDocument();
websiteduplicate.LoadHtml(resultduplicate);
var titlesduplicate = websiteduplicate.DocumentNode.Descendants("div").FirstOrDefault(o => o.GetAttributeValue("class", "") == "arial_14 clear WYSIWYG newsPage");
var match = Regex.Match(titlesduplicate.InnerText, @"(.*?)<!--", RegexOptions.Singleline).Groups[1].Value;
Debug.WriteLine(match.TrimStart());
}
catch(Exception ex1)
{
var dialog2 = new MessageDialog(ex1.Message);
await dialog2.ShowAsync();
}
}
}
Теперь проблема заключается в том, что это также будет возвращать мне текст на картинке. Я могу найти обходной путь, но мне было интересно, есть ли другой подход к этому. Что-то более простое/быстрое.
Плюс, когда я использую это в других статьях/URL-адресах, есть и другие незначительные ошибки.
Вы можете очистить свой узел с XPATH запроса, как это 'titlesduplicate.SelectNodes ("./ IMG") ?. ToList() ForEach (я => i.Remove()); 'И для выбора titlesduplicate используйте' var titlesduplicate = websiteduplicate.DocumentNode.SelectSingleNode ("// div [contains (@class, 'newsPage')]"); ' – Kalten
Можете ли вы подробнее рассказать о том, что ошибки? – GantTheWanderer
@GantTheWanderer - алфавитные кодировки, буквы, измененные на html. Незначительные вещи. –