![]() |
Quelltext auslese Problem
Hi,
ich versuche einen Quelltext auszulesen (möchte nur bestimmte Links erhalten) mit diesem Code.
Delphi-Quellcode:
So sieht der Quelltext aus (ein Teil, der sich wiederholt):
Var
i,e, iStop:integer; Nav, NavNew: Widestring; Begin frmMyBrowser.MemoNav.clear; frmMyBrowser.MemoSource.Clear; frmMyBrowser.MemoT.Clear; frmMyBrowser.MemoL.Clear; WB_GetHTMLCode(frmMyBrowser.MainWebbrowser, frmMyBrowser.MemoSource.Lines); iStop:=frmMyBrowser.MemoSource.Lines.Count-1; for e:=0 to iStop do IF MatchesMask(frmMyBrowser.MemoSource.Lines[e], '*<div class="companyInfo">*') then IF MatchesMask(frmMyBrowser.MemoSource.Lines[e+1], '*<a href="*"*') then frmMyBrowser.MemoT.Lines.Add(Copy(frmMyBrowser.MemoSource.Lines[e+1],POS('<a href="',frmMyBrowser.MemoSource.Lines[e+1])+9,Length(frmMyBrowser.MemoSource.Lines[e+1])+100)); for e:=0 to frmMyBrowser.MemoT.Lines.Count-1 do Begin frmMyBrowser.MemoNav.Lines.Add(Copy(frmMyBrowser.MemoT.Lines[e],0,Pos('l"',frmMyBrowser.MemoT.Lines[e]))); End; End;
Code:
<div style="clear: both;"></div>
<div class="sublinks"> [url="schober/434b6d/bognar-gmbh-balingen.html"]Weitere Informationen[/url] </div> </div> <div class="result"> <div class="companyInfo"> [url="schober/53d74c/abbeizservice-susanne-susanne-mielke-braunschweig.html"]Abbeizservice Susanne Susanne Mielke [/url] Leipziger Str. 217 38124 Braunschweig Abbeiz- und Ablaugbetriebe</div> <div> </div> und das erhalte ich als Ergebnis:
Code:
abbeizereien-bremervoerde-21341b6200.html // Wäre richtig // Keine Ahnung wieso dort leere Spalten entstehen. 21341b6200.html // Fehlt die hälfte class="companyInfo"> // Hat Hier eigentlich gar nicht zusuchen <a href="karosserieentlackung-kronau-157462c300.html // zu viel <a href=" hat dort nicht zu suchen. karosserieentlackung-kronau-157462c300.html 3a52f24400.html both;"></div> <div class="sublinks"> <a href="abbeizereien-siegen-3a52f24400.html </div> <div class="result"> <div class="companyInfo"> <a href="schober/286209/gerhard-mueller-essen.html schober/286209/gerhard-mueller-essen.html class="companyInfo"> <a href="schober/2a87fb/ablaugebetrieb-werner-hill-gmbh-remseck.html Ablaugbetriebe</div> <div> </div> <div style="clear: both;"></div> <div class="sublinks"> <a href="schober/2a87fb/ablaugebetrieb-werner-hill-gmbh-remseck.html href="schober/3fd4c8/norbert-drissner-messstetten.html schober/3fd4c8/norbert-drissner-messstetten.html class="companyInfo"> <a href="schober/434b6d/bognar-gmbh-balingen.html class="sublinks"> <a href="schober/434b6d/bognar-gmbh-balingen.html class="result"> <div class="companyInfo"> <a href="schober/53d74c/abbeizservice-susanne-susanne-mielke-braunschweig.html schober/53d74c/abbeizservice-susanne-susanne-mielke-braunschweig.html Kann jemand helfen, das war mein 1. Versuch. |
Re: Quelltext auslese Problem
Hallo,
da fallen mir ein paar Sachen auf 1. Nutze lokale String-Variablen s1:= frmMyBrowser.MemoSource.Lines[e]; s2:= frmMyBrowser.MemoSource.Lines[e+1]; 2. kleiner Bug for e:=0 to Count-1 do // jaja, heisst iStop Ist e jetzt =Count-1 geht folgendes schief frmMyBrowser.MemoSource.Lines[e+1] RangeCheck einschalten ! 3. Woher kommen die Konstanten Copy(frmMyBrowser.MemoSource.Lines[e+1],POS('<a href="',frmMyBrowser.MemoSource.Lines[e+1])+9,Length(frmMyBrowser.MemoSource.Lines[e+1])+100) iPos:= POS('<a href="',frmMyBrowser.MemoSource.Lines[e+1]); Was soll das +9 und das +100 ? Schreib das mal mit ein paar zusätzlichen Variablen aus also kein .Add(CopyXXX) sondern sString:= CopyXXX .Add(sString) Dann ein paar Breakpoints drauf und nachsehen, wo es hakt. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz