Разбор с помощью AngleSharp

Написание программы для анализа некоторых данных с одного веб-сайта с использованием AngleSharp. К сожалению, я не нашел никакой документации, и это очень затрудняет понимание.

  1. Как я могу с помощью QuerySelectorAll получить только ссылку? Я получаю сейчас только все вещи <a ...>...</a> с Name of article.

<a href="http://kinnisvaraportaal-kv-ee.postimees.ee/muua-odra-tanaval-kesklinnas-valmiv-suur-ja-avar-k-2904668.html?nr=1&amp;search_key=69ec78d9b1758eb34c58cf8088c96d10" class="object-title-a text-truncate">1. Name of artucle</a>

Метод, который я использую сейчас:

var items = document.QuerySelectorAll("a").Where(item => item.ClassName != null && item.ClassName.Contains("object-title-a text-truncate"));
  1. В предыдущем примере я также использовал ClassName.Contains("object-name"), но если мы имеем дело с ячейками таблицы, то никакого класса нет. Насколько я понимаю, для анализа правильного элемента, возможно, я также должен использовать некоторую информацию о родителях. Итак, вот вопрос, как я могу получить это значение «4» из ячейки таблицы?

....<th class="strong">Room</th> <td>4</td>....


person Den    schedule 17.05.2017    source источник
comment
Пожалуйста, уточните вашу проблему. Трудно найти вопрос в вашем сообщении.   -  person Clijsters    schedule 17.05.2017


Ответы (1)


По поводу вашего первого вопроса. Вот пример того, что вы можете извлечь адрес ссылки. Это ссылка на другой связанный пост Stackoveflow.

var source = @"<a href='http://kinnisvaraportaal-kv-ee.postimees.ee/muua-odra-tanaval-kesklinnas-valmiv-suur-ja-avar-k-2904668.html?nr=1&amp;search_key=69ec78d9b1758eb34c58cf8088c96d10' class='object-title-a text-truncate'>1. Name of artucle</a>";
var parser = new HtmlParser();
var doc = parser.Parse(source);

var selector = "a";

var menuItems = doc.QuerySelectorAll(selector).OfType<IHtmlAnchorElement>();

foreach (var i in menuItems)
{
    Console.WriteLine(i.Href);
}

Для вашего второго вопроса вы можете проверить пример в документации, вот Ссылка и ниже пример кода:

// Setup the configuration to support document loading
var config = Configuration.Default.WithDefaultLoader();
// Load the names of all The Big Bang Theory episodes from Wikipedia
var address = "https://en.wikipedia.org/wiki/List_of_The_Big_Bang_Theory_episodes";
// Asynchronously get the document in a new context using the configuration
var document = await BrowsingContext.New(config).OpenAsync(address);
// This CSS selector gets the desired content
var cellSelector = "tr.vevent td:nth-child(3)";
// Perform the query to get all cells with the content
var cells = document.QuerySelectorAll(cellSelector);
// We are only interested in the text - select it with LINQ
var titles = cells.Select(m => m.TextContent);
person cndv    schedule 17.05.2017