Как получить значения из результатов парсинга сайта с помощью AngleSharp?
Решаю задачу парсинга страницы Google с ответами на запрос. Использую AngleSharp. С горем пополам добился того, чего хотел. Получаю результат отбора по селектору span и в этом меня все устраивает. Однако мене нужно считать href ссылку предка, я ее вижу в отладчике, но вот как ее считать программно я совершенно не понимаю. Использую для программирования C#. Прикрепляю изображения с местом откуда не могу считать данные. Подскажите пожалуйста, как туда достучаться? Это элемент, куда я получил данные. мой код
//создание документа используя библиотеку AngleSharp
IConfiguration config = Configuration.Default.WithDefaultLoader();
var document3 = BrowsingContext.New(config).OpenAsync(myUrl).Result;
if (document3.StatusCode != System.Net.HttpStatusCode.OK)
{
Console.WriteLine($"Ничего не получилось = { document3.StatusCode}");
}
HashSet<string> hrefTags = new HashSet<string>();
HashSet<string> tdTags = new HashSet<string>();
var reffs = document3.QuerySelectorAll("a");
var tdTaggs = document3.QuerySelectorAll("span");
var spanClass = document3.QuerySelectorAll("span")
.Where(element => element.TextContent == ">");
//определяем достижения конца списка
string nextURL;
if (spanClass.Count() != 0)
{
Console.WriteLine($"Двигаться дальше можно");
//считываем ссылку для движения дальше
nextURL = spanClass.Parent(); // вот сюда нужно считать href из предка, но достучаться до него не знаю как
}
else
{
Console.WriteLine($"Двигаться дальше нельзя");
//генерируем признак окончания чтения
}
И теперьто, что мне нужно считать
Спасибо
Ответы (1 шт):
Автор решения: Pavlenko Maksim
→ Ссылка
Нашел решение. решение выглядит следующим образом.
IConfiguration config = Configuration.Default.WithDefaultLoader();
var document3 = BrowsingContext.New(config).OpenAsync(myUrl).Result;
if (document3.StatusCode != System.Net.HttpStatusCode.OK)
{
Console.WriteLine($"Ничего не получилось = { document3.StatusCode}");
}
HashSet<string> hrefTags = new HashSet<string>();
HashSet<string> tdTags = new HashSet<string>();
var reffs = document3.QuerySelectorAll("a");
var spanClass = document3.QuerySelectorAll("span")
.Where(element => element.TextContent == ">");
//определяем достижения конца списка
string nextURL;
if (spanClass.Count() != 0)
{
Console.WriteLine($"Двигаться дальше можно");
//считываем ссылку для движения дальше
nextURL = $"https://www.google.ru{spanClass.ElementAt(0).ParentElement.GetAttribute("Href")}";
}
else
{
Console.WriteLine($"Двигаться дальше нельзя");
//генерируем признак окончания чтения
}


