Avatar billede cute_dude Nybegynder
24. august 2002 - 09:55 Der er 10 kommentarer og
1 løsning

Hente links?

Hvordan henter man lettet et vilkårligt antal links fra en specificeret hjemmeside?

Forklaring:
på siden www.min_side.dk/test.html er 3 links som hedder dr,tv2 og tv3. Gæt selv hvor linksene leder hen ;). Hvordan finder man så lettest disse links og smider dem ind it et array eller ligende?

Proces:
1) Undersøger siden test.html...
2) Der er fundet 3 links....
3) Linksene vil nu bliver smidt over i et array...

Mvh
CD

(p.s. jeg kunne muligvis gøre dette ved at hente siden som text og søge efter bestemte strenge men det virker lidt besværligt....)
Avatar billede dkn Nybegynder
24. august 2002 - 15:42 #1
download siden og parse den.
Prøv at søg på torry efter parser der skulle være mange hvis det bare er links du ønsker
Avatar billede cute_dude Nybegynder
24. august 2002 - 16:08 #2
code tak
Avatar billede dkn Nybegynder
24. august 2002 - 17:33 #3
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
Webbrowser1.navigate('www.min_side.dk/test.html');
for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do
Listbox1.Items.Add(Webbrowser1.OleObject.Document.Links.Item);
end;


Kan du forstå det?
Avatar billede cute_dude Nybegynder
24. august 2002 - 20:49 #4
ahhh. Jeg vidste ikke der fantes en "links" operator under webbrowseren. Jeg tester det lige i morgen og hvis det virker efter hensigten er pointene dine :).
Avatar billede cute_dude Nybegynder
24. august 2002 - 21:45 #5
Jeg tror ikke rigtig delphi gider ".links.lenght" - har du testet det?
Avatar billede dkn Nybegynder
24. august 2002 - 23:26 #6
det virker fint, men du skal køre
Webbrowser1.navigate('www.min_side.dk/test.html');

inden det andet, dvs browseren skal have en side åbnet før koden virker
Avatar billede cute_dude Nybegynder
24. august 2002 - 23:48 #7
ja det fatter jeg godt. Den lavede en fejl fordi den ikke havde nået at finde siden endnu. Jeg har midlertid sat Webbrowser1.navigate('www.min_side.dk/test.html'); på en anden knap.

Men nu er der et nyt problem: når den læser linksene ind i listboxen gentager den heletiden det første link den finder. Burde den sidste sætning ikke have et index basert på tælleren f.eks

Listbox1.Items.Add(Webbrowser1.OleObject.Document.Links.Item[teller]);

(virker ikke).
Avatar billede dkn Nybegynder
25. august 2002 - 00:01 #8
Ja det havde jeg lige overset det hedder:

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
i: Integer;
begin
for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do
Listbox1.Items.Add(Webbrowser1.OleObject.Document.Links.item(i));
end;
Avatar billede cute_dude Nybegynder
25. august 2002 - 00:24 #9
ja ok nu fatter jeg minus...
Avatar billede dkn Nybegynder
25. august 2002 - 00:55 #10
du kører bare
Webbrowser1.navigate('www.min_side.dk/test.html');
på en knap

og så sætter du det her på event DocumentComplete:

var
i: Integer;
begin
Listbox1.Items.clear;
for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do
Listbox1.Items.Add(Webbrowser1.OleObject.Document.Links.item(i));
end;
Avatar billede cute_dude Nybegynder
25. august 2002 - 11:10 #11
bingo
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester