WebBrowser - linki i anchortext

Odpowiedz Nowy wątek
2006-07-25 17:05
Mumion
0

Czy ktos wie jak mozna za pomoca komponentu WebBrowser pobrac ze strony linki i odpowiadajace im tytuly linkow (anchortext)?
Chcialbym uzyskac uporzadkowana pare w tablicy, gdzie kazdemu linowi odpowiada tytuliku?
np.
tab[1,1]:='http://..1'
tab[1,2]:='bla bla 1'
tab[2,1]:='http://..2'
tab[2,2]:='bla bla 2'
tab[3,1]:='http://..3'
tab[3,2]:='bla bla 3'
etc...

Czy jest to mozliwe do wykonania przy pomocy tego komponentu?
Moze ktos zna jakis fajny komponent-parserek html? Zaznaczam, iz reczne ciecie kodu za pomoca pos, StrReplace etc... odpada!

Pozostało 580 znaków

2006-07-25 23:25
0

Aby pobrać wszystkie linki ze strony:

function  GetLinks(WebBrowser : TWebBrowser) : String;
var s : String;
     a : Integer;
begin
for a := 0 to WebBrowser.OleObject.Document.Links.Length-1 do
s:=s+(WebBrowser.OleObject.Document.Links.Item(a).href)+#13;
Result:=s;
end;

Ale.. no właśnie, ale ;] ty chciałeś jeszcze tytuły linków... z tym może być problem xD. Powiedz czemu nie możesz stosować ręcznego cięcia kodu?
BTW prześlij na PM fragment źródła strony lub też całe źródło.

Pozostało 580 znaków

2006-07-27 21:33
Autor
2006-07-28 10:42
0

Spróbuj sam go napisać. Ja pisałem coś podobnego do wiciągania innych informacji ale linków też i wszystko pięknie mi działało, wystarczy dobrze filtrować kod. Ja mam 10 funkcji filtrujących dla wyciągania informacji z pola select.

Przeszukaj caly tekst i jak napotkasz na <a to zacznij to wczytywac do jakiegos stringa np LinkText:String i skoncz jak napotkasz </a. Jesli nie napotkasz zamykajacego znacznika </a> a znalazles poczatek znacznika <a...> to po prostu traktujesz to co sie zapisalo do zmiennej LinkText jako linka i probujesz z niego cos powyciagac.

Kiedy w zmiennej LinkText masz tekst na przyklad:
Tresc linka
to robisz tak:

  1. zeby wyciagnac tresc lika: zrob funkcje do usuwania wszelkich tagów < i to co Ci pozostanie jest trescią linka.
  2. zeby wyciagnac linka robisz funkcje ktora wyciaga kazdy tag zaczynajacy sie od <a i wywalasz mu znaki < i > a nastepnie dzielisz tekst wedlug spacji i sprawdzasz kazdy podzielony kawalek. Jesli zaczyna sie on od href=... (zwroc uwage na wielkosc liter) to usuwasz mu ten wlasnie poczatek a pozniej strawdzasz czy na koncu tego co zostalo sa znaki "" lub '' i je usuwasz. To wszystko, parser gotowy :-) </b>

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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