verschieden I-net seiten mithilfe von _StringBetween auslesen

  • Hallo,

    ich möchte verschieden I-net seiten mithilfe von _StringBetween auslesen und mir das Ergebinss in eine Datei speichen. Mein Problem an dieser Sache ist nur das ich die Seiten die ich auslesen will auf meinen pc geöffnet sind. Es müsste also ein befehl sein der alle bei mir geöffneten I-net Seiten fortlaufend durchsucht.

  • Das sind schonmal die werte die ich auslesen will.

    "href="http://www.ichliebegemuese.de">XXX</A></TD>
    <TD>40</TD>
    <TD>37</TD>
    <TD>36</TD>
    <TD>35</TD>
    <TD>34</TD>
    <TD>33</TD></TR>
    <TR>"


    Es soll in der Datei wiefolgt aussehen: händler XXX, 40gurken, 37äpfel, ......... bis 33orangen

    ich habe es momentan so versucht:

    Spoiler anzeigen


    #include <IE.au3>
    #include <String.au3>
    #include <Inet.au3>
    #include <Array.au3>


    $filew = FileOpen(@ScriptDir & "\gemuese.txt", 2) ;

    $sText1 = _IEBodyReadHTML($oIE)
    $sanfang1 = 'http://www.ichliebegemuese.de">'
    $ende1 = '<TR>"'
    $gesucht1 = _StringBetween($sText1, $sanfang1, $ende1)
    $gesucht1 = $gesucht1[0]

    FileWriteLine( $filew, $gesucht1 )


    aber es geht nicht und ich versteh mal wieder nicht warum

  • Wie schon oft hier im Forum erwähnt bringt ein 'Es geht nicht' reichlich wenig.
    Gibt es eine Fehlermeldung, kommt kein Text raus?

  • echt das kann ich mir ja garnicht vorstellen :)
    aber vllt gibt es sie ja bald
    na die wichtigen sachen aus dem quelltext hab ich doch schon oben eingegeben

  • das ist der Fehler:
    ==> Subscript used with non-Array variable.:
    $gesucht1 = $gesucht1[0]
    $gesucht1 = $gesucht1^ ERROR

    kommt aber nur wenn ich das alles auslese. wenn ich jede zeile einzeln nehme geht es. Ich glaube das hat was mit den zeilenumbrüchen und den " im Link zu tun

  • Dann bau das :

    $gesucht1 = _StringBetween($sText1, $sanfang1, $ende1)
    $gesucht1 = $gesucht1[0]

    FileWriteLine( $filew, $gesucht1 )

    mal so um :
    $gesucht1 = _StringBetween($sText1, $sanfang1, $ende1)
    If IsArray( $gesucht1 ) Then
    $gesucht1 = $gesucht1[0]
    EndIf

    FileWriteLine( $filew, $gesucht1 )

  • Geht leider immer noch nicht. Er schreibt mir jetzt einen "0" in meine datei .Ich habe mal die seite wo es ausgelesen werden soll auf einen testserver geladen.
    Es soll "händler 1" bis zahl "15" in die .txt geschrieben werden.

    Hier der Link:
    http://www.autohaus-roethig.de/clan/test.html

    Hier nochmal das script:

    Spoiler anzeigen
    [autoit]

    ;Internet Explorer öffnen und Module laden
    #include <IE.au3>
    #include <String.au3>
    #include <Inet.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;Module laden ende------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $sUrl = "http://www.autohaus-roethig.de/clan/test.html"
    $oIE = _IECreate($sUrl)
    _IELoadWait($oIE)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $filew = FileOpen(@ScriptDir & "\high.txt", 2) ; Nur einmal öffnen

    [/autoit] [autoit][/autoit] [autoit]

    $sText1 = _IEBodyReadHTML($oIE)
    $sanfang1 = 'href="1">' ;Textfeld davor
    $ende1 = '</TR>' ;Textfeld dahinter
    $gesucht1 = _StringBetween($sText1, $sanfang1, $ende1)
    $gesucht1 = _StringBetween($sText1, $sanfang1, $ende1)
    If IsArray( $gesucht1 ) Then
    $gesucht1 = $gesucht1[0]
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    FileWriteLine( $filew, $gesucht1 )

    [/autoit]
  • Folgende Zeile ändern :

    $sanfang1 = 'href="">' ;Textfeld davor


    Lass dir in Zukunft einfach den Inhalt des HTML anzeigen :
    MsgBox( 0, "Test", $sText1 )

  • Och sieh an, kaum hat man Quelltext, kann sogar ich mir was vorstellen :D ( brauche halt immer Beispiele)

    ich bekomme das hier raus:
    händler 1 10 11 12 13 14 15
    händler 2 21 21 22 23 24 25

    wenn ich mir die beispielseite einlese mit:

    Spoiler anzeigen
    [autoit]

    ;Internet Explorer öffnen und Module laden
    #include <IE.au3>
    #include <String.au3>
    #include <Inet.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;Module laden ende------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $sUrl = "http://www.autohaus-roethig.de/clan/test.html"
    $oIE = _IECreate($sUrl)
    _IELoadWait($oIE)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $filew = FileOpen(@ScriptDir & "\high.txt", 2) ; Nur einmal öffnen

    [/autoit] [autoit][/autoit] [autoit]

    $sText1 = _IEBodyReadHTML($oIE)
    $sanfang1 = 'href="">' ;Textfeld davor
    $ende1 = '</TR>' ;Textfeld dahinter
    $gesucht1 = _StringBetween($sText1, $sanfang1, $ende1)
    ;~ $gesucht1 = _StringBetween($sText1, $sanfang1, $ende1)
    If IsArray( $gesucht1 ) Then
    for $i = 0 to UBound($gesucht1) -1
    $str = StringSplit($gesucht1[$i],"<TD>")
    FileWriteLine( $filew, $str[21] & " " & $str[31] & " " & $str[39] & " " & $str[47] & " " & $str[55] & " " & $str[63] & " " & $str[71] )
    next
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Geht zwar noch schöner, aber du willst sicher noch selber nen bissel rumspielen mit dem Quelltext.

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)