Entwickler-Ecke
Internet / Netzwerk - Problem beim Auslesen von Daten (Link in HTML-Seite)
Mario Elßner - Di 08.05.12 23:45
Titel: Problem beim Auslesen von Daten (Link in HTML-Seite)
Hallöle,
hab mal wieder nen anliegen und weiß nicht so richtig wie ich es umsetzen soll.
Ich hatte mal vor langer Zeit nen Tool geschrieben welches URL's aus einer Webseite ausliest und bis dato ganz gut funktionierte.
Nun wurde allerdings die Webseite umgestellt und es funzt nicht mehr.
Das war mein altes Script (Abfrage):
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: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66:
| procedure TForm1.Button6Click(Sender: TObject); var htmlDoc: IHTMLDocument2; allLinks: IHTMLElementCollection; firstLink: IHTMLElement; url, s : String; count, x, link, i : integer; aHref : IHTMLElement; v, b : Integer;
begin ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'system.ini'); try v := ini.ReadInteger('System', 'start', 1); b := ini.ReadInteger('System', 'end', 300000); while v < b do begin edit4.Text := IntToStr(v); embeddedWB2.Navigate('http://url.de/highscore.php?mode=1&von=' + IntToStr(v) +'&submit=Anzeigen#hs'); delay(StrToInt(Edit6.Text));
htmlDoc := embeddedwb2.Document as IHTMLDocument2; allLinks := htmlDoc.links; count := htmlDoc.Links.Length;
if count > 0 Then begin memo3.Clear; for x := 0 to -1 + count do begin aHref := allLinks.Item(x,'') as IHTMLElement; url := aHref.toString; link := Pos('http://url.de/userdetails.php', url); if link <> 0 then begin memo3.Lines.Add(url);
ADOTable1.Append; ADOTable1.FieldByName('Link').AsString := url; ADOTable1.FieldByName('New').AsString := '1'; ADOTable1.Post; end;
end; end; v := v + 50; ini.WriteInteger('System', 'start', v);
if CheckBox1.Checked = true Then Break; end; finally ini.Free; end;
end; |
Damit funktioniere das auslesen ganz gut......
Nun wurden allerdings die Links in der Webseite neu eingebettet und sehen wie folgt aus.
Quelltext
1:
| <a href="#" class="openUserDetails" rel="283527"> |
Wie kann ich nun mein Script umstellen das ich zwar nach den vorhandenen Links suche aber nur mir alles ausgegeben wird was nach
rel=" erscheint.
Das ich die Zeilen 34-36 umstellen muss ist mir klar aber weiß nicht wie....
Kann mir dabei einer helfen, hab da momentan echt kein Plan. Ne Lösung wäre echt toll.
Danke im voraus....
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mi 09.05.2012 um 11:42
Moderiert von
Narses: Titel geändert, war: "Problem beim Auslesen von Daten.......".
Mario Elßner - Mi 09.05.12 22:00
Alles gut und schön...
Habe es mit getAttribute probiert nur funzt es ni so wie es sein soll......
wenn ich mit getAttribute das Attribut
rel abrufe gibt er mir alles raus was er findet.
Nur wie kann ich es eingrenzen das er mir nur aus bestimmten Zeilen es auswirft was ich haben will.....
die Kompletten zeilen (ca 50) sehen wie Folgt aus, nur der Inhalt in
rel ist verschieden:
Quelltext
1:
| <a href="#" class="openUserDetails" rel="316558"> |
Habe es auch versucht mit Attribut
class nur bekomme ich eine Exception der Klasse EVariantTypeCastError ( Meldung: Variante des Typs (Null) konnte nicht in Typ (String) konvertiert werden).....
Gibts da keine andere möglichkeit? Ich brauche nur aus dem bestimmten Link aus Attribut
rel den Inhalt.....
jaenicke - Mi 09.05.12 22:45
Naja, du musst schon ein Kriterium haben wonach du unterscheiden kannst welchen Link du willst und welchen nicht...
Zum Beispiel in einem Tag davor oder danach.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!