2017-05-17 6 views
0

Programmation d'écriture pour analyser certaines données d'un site Web en utilisant AngleSharp. Malheureusement, je n'ai trouvé aucune documentation et cela rend la compréhension très difficile.Analyse syntaxique avec AngleSharp

  1. Comment puis-je utiliser le lien QuerySelectorAll? Je reçois maintenant juste toutes les choses <a ...>...</a> avec 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>

La méthode que je me sers maintenant:

var items = document.QuerySelectorAll("a").Where(item => item.ClassName != null && item.ClassName.Contains("object-title-a text-truncate")); 
  1. Dans l'exemple précédent, je également utilisé ClassName.Contains ("nom d'objet "), mais si nous traitons avec des cellules de tableau, il n'y a aucune classe. Comme je comprends pour analyser l'élément droit maybee je dois utiliser quelques informations sur le parent aussi. Alors, voici la question, comment puis-je obtenir cette valeur «4» de la cellule de tabulation?

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

+0

S'il vous plaît préciser votre problème. Il est difficile de trouver une question dans votre message. – Clijsters

Répondre

1

En ce qui concerne votre première question. Voici un exemple dans lequel vous pouvez extraire l'adresse du lien. Ceci est un Link d'un autre article Stackoveflow associé.

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); 
} 

Pour votre deuxième question, vous pouvez vérifier l'exemple sur la documention, voici le Link et au-dessous est l'exemple de code:

// 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);