Autor Beitrag
bfelix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 61

WIN 2000 Prof., Win XP Prof., Win 7 Starter und Prof., SuSe Linux 11.3,
Delphi 7 Pers.
BeitragVerfasst: Fr 25.03.11 21:47 
Hallo Community,

ich würde gerne nach dem herunterladen einer Homepage aus dem HTML-Text (Amazon Bücher) Bausteine dieser Art filtern:
<span id="btAsinTitle">Java für Kids <span style="text-transform: capitalize; font-size: 16px;">[Taschenbuch]</span></span>
Als Ergebnis will ich einen String Titel (btAsinTitle) haben. Ich habe es schon probiert, indem ich von 2 positionen+länge des Namens (in diesem Fall btAsinTitle) aus bis zum < die Zeichen zum String adde, allerdings hatte ich damit nicht viel Erfolg (leerer String ist das Ergebnis).
Hier der Quellcode:
ausblenden volle Höhe 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:
function firstpos (Eingabe: String; suche: String): Integer;
var
i,j,n,u: Integer;
searched: Boolean;
eing2: String;
ch1: Char;
begin
eing2:=Eingabe;
for i:=1 to Length(eing2) do begin
  searched:=True;
  for j:=1 to Length(suche) do begin
    if Not (ch1 = suche[j]) then searched:=False;
  end;
  if searched then begin
    result:=i;
    exit;
  end;
end;
//result:=eing2;
end;


function GetContent (html,name: String): String;
var
i,pos: Integer;
r1: String;
begin
//pos:=Pos(name,html)+Length(name)+2;
pos:=firstpos(html,name)+Length(name)+2;
for i:=pos to Length(html) do begin
  if html[i] = '<' then exit else r1:=r1+html[i];
end;
result:=r1;
end;


Aufgerufen durch:
ausblenden Delphi-Quelltext
1:
str:=GetContent(content, 'btAsinTitle')					


Findet jemand einen Fehler oder weiß, wie ich es sonst machen könnte??

Danke
BFelix
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 25.03.11 22:18 
Es gibt auch eine API, mit der du die Daten einfach serviert bekommst. ;-)
Um genau zu sein die Product Advertising API, wenn ich das richtig sehe:
affiliate-program.am...api/detail/main.html
amazoop.sourceforge.net/