Entwickler-Ecke
Internet / Netzwerk - Website auswerten....(wichtig, bitte nochmal lesen)
Anonymous - Di 24.06.03 11:19
Titel: Website auswerten....(wichtig, bitte nochmal lesen)
Hallo, vielleicht kann mir jemand helfen...
Ich würde gerne eine Website auswerten....Ich lade z.B. eine Seite und möchte alle Links in ein StringGrid packen....Kann mir jemand helfen?
Tino - Di 24.06.03 12:15
Hallo!
Was genau ist Dein Problem? Weißt du nicht wie man eine Datei aus dem Internet downloadet oder wie man eine HTML Datei parst oder wie man Text in ein StringGrid hinzufügt?
Gruß
Tino
Anonymous - Di 24.06.03 12:20
îch weiß nicht wie ich links aus einer kompletten html datei rausfiltert!
foxy - Di 24.06.03 12:24
tino ich denke er meint das er alle vorhandenen Links die auf der page enthalten sind, in ein Grid reinpackt und dann die vergleicht , und irgendwas mit den links, die er relevant findet , etwas amchen kann .
wow was für ein satz :rofl:
Anonymous - Di 24.06.03 12:33
ja genau
Delete - Di 24.06.03 13:28
Dann nimm dir einen HTML-Parser! Der einfachste Weg wäre über die TWebBrowser-Komponente von Delphi. Mit der hast du Zugriff auf alle Elemente der HTML-Seite und kannst daher auch relativ bequem alle Links "<a>" suchen und in dein StringGrid eintragen lassen.
Anonymous - Di 24.06.03 13:35
ja aber wie suche ich denn nach den Links <a>?
Anonymous - Di 24.06.03 13:59
Mehr wie das hab ich bis jetzt noch nicht gefunden....hab keinen plan wie ich das alles anstellen soll....
Quelltext
1: 2: 3:
| NMHTTP1.Get(URL); Memo1.Text := NMHTTP1.Body; if Pos('<a', Memo1.Text) <> 0 then //naja, weiß noch nicht weiter; |
Tino - Di 24.06.03 14:05
Na ja, eine HTML Seite zu parsen ist nicht besonders einfach. Ich würde dir empfehlen einen fertigen HTML Parser zu benutzen. Schau mal auf
Torry [
http://www.torry.net] nach.
Wenn Du es selber machen willst dann sind die Befehle
Pos und
Copy ganz hilfreich.
Gruß
Tino
Anonymous - Di 24.06.03 14:16
Ja ist schon nicht einfach...aber komme schon näher
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button2Click(Sender: TObject);
var a, b: integer; Begin a:=Pos('<a href=', Memo1.Text); b:=Pos('/a>', Memo1.Text); ShowMessage(Copy(Memo1.Text, a+1, b-1-a));
End; |
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.
Tino - Di 24.06.03 14:22
Du darfst die Groß- / Kleinschreibung nicht bachten. Dein Code würde z. B. das hier nicht finden:
Schau mal in der Hilfe nach
UpperCase.
Gruß
Tino
Anonymous - Di 24.06.03 14:26
ich glaub ich mache mit diesem projekt dann mal später weiter....mir fehlt noch reichlich erfahrung dafür...
Tino - Di 24.06.03 14:44
Wie gesagt: Dann benutze einfach einen fertigen HTML Parser. Diese sind meistens recht einfach zu benutzen.
Gruß
Tino
Anonymous - Di 24.06.03 18:00
So, habs jetzt ganz anders und total Easy hinbekommen.....
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button2Click(Sender: TObject); 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; |
Aber vielleicht kann mir jetzt jemand sagen wie ich einige Links rausfiltern kann....
Ich suche nämlich nur Links wie folgt:
http://www.url.de/vieitem=0123456
Der Link ändert sich hinten nur in der nummer....
Leider sind auf der seite aber auch noch andere links wie
http://www.bannerklick.de u.s.w.
Wie schaffe ich es also das ich nur die oben genannten urls mit der nummer raus bekomme?
Tweafis - Di 24.06.03 18:39
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.Button2Click(Sender: TObject); var i: Integer; aUrl: string; searchUrl: string;
begin searchUrl := 'http://www.url.de/viewitem=';
for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do begin aUrl := Webbrowser1.OleObject.Document.Links.Item(i);
if Pos(aUrl, searchUrl) > 0 then Listbox1.Items.Add();
end; end; |
Anonymous - Di 24.06.03 18:46
Funktioniert leider nicht....
Anonymous - Di 24.06.03 18:47
Mit der zweiten möglichkeit gehts , danke
Tweafis - Di 24.06.03 21:02
Kann garnicht gehen, ich hab vergessen bei Add was reinzuschreiben. Ansonsten sollte auch das erste gehen (Fehler gefunden, du musst aUrl und searchUrl vertauschen, der substr kommt als erstes) ;) (Hab den Code nicht geändert, das kannst du doch auch selbst ;)
Anonymous - Di 24.06.03 21:06
ja das habe ich schon direkt gesehen,,, aber die erste möglichkeit funktioniert bei mir trotzdem nicht....
Tweafis - Di 24.06.03 21:08
Wie gesagt, mit den Zeieln
Delphi-Quelltext
1: 2:
| if Pos(searchUrl, aUrl) > 0 then Listbox1.Items.Add(aUrl); |
sollte es gehen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!