AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Quelltext auslese Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Quelltext auslese Problem

Ein Thema von youuu · begonnen am 26. Jan 2010 · letzter Beitrag vom 26. Jan 2010
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

Quelltext auslese Problem

  Alt 26. Jan 2010, 08:51
Hi,

ich versuche einen Quelltext auszulesen (möchte nur bestimmte Links erhalten) mit diesem Code.

Delphi-Quellcode:
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;
So sieht der Quelltext aus (ein Teil, der sich wiederholt):

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.
Steven
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Quelltext auslese Problem

  Alt 26. Jan 2010, 13:45
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
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz