HtmlAgilityPack Parsowanie

0

Witam mam problem z Parsowaniem mam kod który zwraca mi taką treść w Html:

<div class="avatar-container av-32" ><a class="gwiazda-tlo" href="/profil/jakiś tam profil" title="DR" target="_blank"><img src="http://s.fotka.pl/img/" alt="Avatar użytkownika DR" class="g16 g16_73" /></a><a class="shadowed-avatar av-32" href="/profil/DR" target="_blank"><img src="http://s.fotka.pl/img/" style="background-size: 32px;background-image:url(http://s.fotka.pl/img/users/);background-image:-webkit-image-set( url(http://s.fotka.pl/img/users/av/.png) 1x, url(http://s.fotka.pl/img/users/av/.png) 1.5x);filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://s.fotka.pl/img/users/av/.png, sizingMethod=scale);" alt="DR" /></a></div> <span class="notify-body-login"><a href="/profil/DR"><span style="color:#000000;font-weight:bold;">DR</span></a> <a href="/klubgwiazd"><img src="http://s.fotka.pl/img/.gif" alt="" class="g16 g16_73" /></a> </span> dodał wątek <a href="/grupa/868732/Fotkapl_Klub_Gwiazd/Forum/178766/Ktos_wiec_gdzie_mozna_sprawdzic_do_kiedy_jest_gwiazdka_">Ktos wiec gdzie można sprawdzić do kiedy jest gwiazdka ?</a> na forum grupy <a href="/grupa/868732/Fotkapl_Klub_Gwiazd/">Fotka.pl - Klub Gwiazd</a>

i nie mogę sobie poradzić z Parsowaniem całej strony gdy robię takie coś:

  HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
  doc.Load(test);
  doc.DocumentNode.SelectNodes("//div[contains(@class, 'content')]");

Wyskakuje błąd:"Additional information: Niedozwolone znaki w ścieżce", jak sparsować całą stronę proszę o Pomoc.

0

może nie na temat, ale jak chcesz coś wyciągnąć z tego kodu to użyj regexa albo substring, indexof itp

0

Prawdopodobnie błąd jest w zmiennej test ale nie wiadomo co się pod nią kryje, html nie wygląda na kompletny.

0

A co chcesz dokładniej wyciągnąć?

Ja zrobiłem coś takiego:

using (StreamReader sr = new StreamReader(response.GetResponseStream()))
            {
                HtmlDocument htmlDoc = new HtmlDocument();
                htmlDoc.Load(sr);
 
                var inputs = from input in htmlDoc.DocumentNode.Descendants("input")
                             where input.Attributes["name"].Value == "lt"
                             select input;
 
                foreach (var input in inputs)
                {
                    Cookie_LT = input.Attributes["value"].Value;
                }
                inputs = from input in htmlDoc.DocumentNode.Descendants("input")
                         where input.Attributes["name"].Value == "execution"
                         select input;
 
                foreach (var input in inputs)
                {
                    execution = input.Attributes["value"].Value;
                }
 
            }

Dla takiego HTMLa:

<input type="hidden" name="lt" value="LT-3319433-SpTmc47FfhI6WKiMPddXLRL3C7jD09" />
<input type="hidden" name="execution" value="e1s2" />


Możliwe, że coś pomoże. Nie jestem zwolennikiem zawiłego RegExa
0

ok jakoś sobie poradziłem jak wyciągnąć linki tylko dalej nie wiem jak wyciągać resztę.

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
 doc.LoadHtml(test);

IEnumerable<HtmlNode> links = doc.DocumentNode.Descendants("a").Where(x => x.Attributes.Contains("href"));
foreach (var link in links)
{
    richTextBox1.Text=(string.Format("{0}, {1}", link.Attributes["href"].Value, link.InnerText));       
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1