Próbuję wyciągnąć dane ze strony filmweb.pl. Część kodu HTML to:
- Kod: Zaznacz cały
- gatunek:Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â <strong>Â Â Â Â Â Â <a href="http://www.filmweb.pl/szukaj/film?sort=COUNT&sortAscending=false&genreIds=6&genreIds=24&genreIds=28"> Dramat, Thriller, Akcja</a>Â Â Â </strong>Â Â Â Â </p>
- Â
- Â Â <p class="film-premieres">
Zaznaczam, że te spacje, nie są przypadkowe, po prostu wczytując funkcją Get() z TIdHTTP dostaję taki rozstrzelony kod
Kombinowałem z
- Kod: Zaznacz cały
- SOURCE.Pos("gatunek:")
Wpadłem na pomysł, żeby "od tyłu" się do tego dobrać
- Kod: Zaznacz cały
- Dramat, Thriller, Akcja
No i niby działa przy tym linku jak są 3 gatunki ale np. jak jest jeden to też działa, ale nie tak jak ma działać (pokazuje też trochę literek wcześniej):P
Tak wygląda mój kod tego co opisałem:
- Kod: Zaznacz cały
- int i, p;
- String ADRES = Edit1->Text;
- String SOURCE = IdHTTP1->Get(ADRES);
- String tmp;
- Â
- p = SOURCE.Pos("<p class=\"film-premieres\">");
- tmp = SOURCE.SubString(p-48,24);
- Edit2->Text = tmp;
- Â
- Memo1->Text = SOURCE;
Może mi ktoś doradzić jak to dalej rozwiązać ? Tak sobie myśłę, że przydałaby się funkcja która po napotkaniu ">" (w tym Stringu tmp) ucina znaki wstecz, co ja przez to rozumiem, mając np.:
- Kod: Zaznacz cały
- Ids=13"> Dramat, Komedia
żeby wycieło to przed znakiem ">" włącznie z nim
Nie wiem może jest jakieś lepsze wyjście z tej sytuacji, także proszę o rady/sugestie - "jak to ugryźć?"
//EDIT
W celu usunięcia tych niepotrzebnych znaków, użyłem znów .Pos(), a następnie .Delete()
- Kod: Zaznacz cały
- p = tmp.Pos(">");
- tmp = tmp.Delete(1,p);
Działa! Ale czy to wszystko dobrze napisałem to nie jestem pewien, tymczasem idę spać!
Czekam na Wasze propozycje: "jakbyście Wy to zrobili".
Pozdrawiam



