HtmlAgilityPack Parsowanie

HtmlAgilityPack Parsowanie
S8
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:27
0

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

Kopiuj
<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ś:

Kopiuj
  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.

AL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 2 miesiące
  • Postów:308
0

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

DibbyDum
XPath jest lepszy do operowania na markup language, nie ma sensu używać w takich przypadkach to co podałeś.
DibbyDum
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Polska, Kraków
0

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


Yubby dibby dibby dibby dibby dibby dibby dum..
edytowany 1x, ostatnio: DibbyDum
E1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:4
0

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

Ja zrobiłem coś takiego:

Kopiuj
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:

Kopiuj
<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
edytowany 1x, ostatnio: event15
S8
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:27
0

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

Kopiuj
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));       
}
edytowany 2x, ostatnio: Shady84pl

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.