WebBrowser Pobieranie linków ze strony

0

Witam.

Bardzo proszę o pomoc.

Chciałbym pobrać adresy wszystkich odnośników ze strony "strana x" i zapisać je do pliku.
W jaki sposób mógłbym to zrobić?

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

Jak mam odpowiednio przerobić ten kod?

0

A po co chcesz przerabiać ten kod? Przecież jest chyba poprawny... :P
Po prostu wywołaj tę funkcję, a później wynik zapisz do pliku... ;)

0

a jak mam mu kazać pobrać te adresy do memo?

0
end;

function  GetLinks(WebBrowser : TWebBrowser) : String;

var
  Form1: TForm1;
       s: String ;
         b1: String ;
          b2: String ;
           s2 : String;
     a : Integer;
      I : integer;
       str : String;
       str2 : String ;

[Error] ftkpro.pas(63): Unsatisfied forward or external declaration: 'GetLinks'

procedure TForm1.Timer2Timer(Sender: TObject);
begin

for a := 0 to WebBrowser.OleObject.Document.Links.Length-1 do
s2:=s2+(WebBrowser.OleObject.Document.Links.Item(a).href)+#13;
Result:=s2;
end;

end.

[Error] ftkpro.pas(166): Object or class type required

proszę o pomoc

0

a jak mam mu kazać pobrać te adresy do memo?

Memo.Text := GetLinks(WebBrowser);

end;

function GetLinks(WebBrowser : TWebBrowser) : String;

var
Form1: TForm1;
s: String ;
b1: String ;
b2: String ;
s2 : String;
a : Integer;
I : integer;
str : String;
str2 : String ;

Tyyy... gdzieś Ty wsadził deklarację tej funkcji ? ^^
Wsadź ją do public... ;)

I po prostu wpisz ten kod:

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

pod implementation... ;)

I w timerze wywołuj funkcję GetLinks, żeby było przejrzyściej ... ;)

0

szefie dzięki za odpowiedź ale mam problemik

robie tak

  public
  function  GetLinks(WebBrowser : TWebBrowser) : String;

[Error] ftkpro.pas(55): Unsatisfied forward or external declaration: 'TForm1.GetLinks'

i tu gitarka gra z timerem też sobie poradziłem ale ta procedura to mi nie gra ;/

implementation

do tej sekcji dodaje:

 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;

i mam taki problemik :/
[Error] ftkpro.pas(72): Object or class type required
[Error] ftkpro.pas(75): '.' expected but ';' found

0

i tu gitarka gra z timerem też sobie poradziłem ale ta procedura to mi nie gra ;/

implementation

do tej sekcji dodaje:

 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;

najprawdopodobniej problem w tym, że twój wrzucony web browser nazywa się webbrowser1 więc kod powinien wyglądać tak:

 begin
for a := 0 to WebBrowser1.OleObject.Document.Links.Length-1 do
s:=s+(WebBrowser1.OleObject.Document.Links.Item(a).href)+#13;
Result:=s;
end;
0

rzeczywiście mój błąd chodziło o głupią 1 moja nieuwaga! Bardzo dziękuje!

Wiele mi pomogliście i powiem Wam, że jeszcze troszkę i dam Wam spokój ;)

Mianowicie mam w memo dany "strumień" wierszy (ew. mogą to być dane z pliku )
np.
www.alfabeta.pl
www.alfabetagamma.pl
www.alfabeta.net
www.4programmers.net

i teraz haczyk polega na tym, że chciałbym aby program automatycznie
skopiował zawartość między 'www.' a '.net'
Gdy odnajdzie aby ją skopiował do następnego memo np. memo2 bądź zapisał do pliku.

To już moja ostatnia prośba do Was ;)

0
var
  i, pocz, kon: Integer;
begin
  for i:=0 to memo1.Lines.Count -1 do
  begin
    pocz := pos('www.',memo1.lines[i]) +4;
    kon := lastdelimiter('.', memo1.lines[i]);
    memo2.Lines.Add(copy(memo1.Lines[i], pocz, kon-pocz));
  end;
0

oki już wiem na czym polega problem

Ładnie pobiera linki i wyszukuje między nimi danej frazy ale jest mały mankament
user image
Zaznaczone na czerwono "kwadraciki" to zapewne entery tylko jak zrobić aby te kwadraty zamieniły się w enterki?

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