Problem mit _StringBetween

  • Hallo,

    ich schon wieder.^^ Ich hoffe, dass ihr mir auch diesesmal helfen könnt. Ich möchte aus einem Quellcode einen Textstelle auslesen. Ich habe vor dies mit _FFReadHTML und _StringBetween zu lösen. Jedoch gibt es ein Problem: Links vom gesuchten Wort kann es vorkommen, dass der Start-String, der gesucht werden soll, öfters vorkommt. Kann ich diesen Teil irgendwie "abschneiden" (es sind nicht immer gleich viele Zeichen) bzw. das Problem ganz umgehen (den Startstring zu vergrößern, geht aucht nicht, da ich eine ID nicht kenne)? Ein Beispiel:

    Spoiler anzeigen
    Zitat

    playerid=2357" title="Spieler wählen">Kern, Benjamin</a></td><td style="width: 100px; text-align: center;">26</td><td style="padding-left: 10px;"><a href="index.php?main=1&amp;naviid=ligen&amp;cid=1&amp;league=7&amp;clubid=63" title="MSV Duisburg">MSV Duisburg</a></td></tr><tr><td style="width: 25px;"><img style="vertical-align: middle; margin-bottom: 2px;" src="m1/icons/ger.png" alt="Deutschland" title="Deutschland"></td><td style="width: 230px;"><a href="index.php?main=1&amp;naviid=ligen&amp;clubid=83&amp;action=player&amp;playerid=GESUCHTE WORT


    Mein Code:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>
    #include <String.au3>
    #include <Array.au3>

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

    _FFStart("http://www.sozone.de")
    _FFConnect()
    _FFOpenURL("http://www.sozone.de/index.php?main=1")
    _FFSetValue("Kern", "search_name", "name")
    _FFClick("search", "name")
    $Quellcode = _FFReadHTML()
    $PlayerID = _StringBetween($Quellcode, "playerid=", '" title="Spieler wählen">Kern, Enrico')
    _ArrayDisplay($PlayerID, 'Standardsuche')

    [/autoit]

    MfG,
    schw3ndi

  • Danke für den Tipp. Aber ich kenne die gesuchte Zahl nicht, daher kann ich StringInStr leider nicht anwenden (?). Bei StringTrimLeft muss man ja die Anzahl der Zeichen wissen (?), die weggekürzt werden sollen, die ist jedoch variabel.
    Sry, dass ich das nicht schon im ersten Beitrag erwähnt habe.

  • So wie ich das sehe willst du die Playerid

    Hier eine einfache StringRegExp Lösung, die Lösung ist nicht perfekt, aber funktioniert. (Anfänger in StringRegExp) ;)

    [autoit]

    #include <FF.au3>
    #include <String.au3>
    #include <Array.au3>

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

    Global $player="Kern, Enrico"

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

    _FFStart("http://www.sozone.de")
    _FFConnect()
    _FFOpenURL("http://www.sozone.de/index.php?main=1")
    _FFSetValue("Kern", "search_name", "name")
    _FFClick("search", "name")
    $Quellcode = _FFReadHTML()
    $PlayerID = StringRegExp($Quellcode,'playerid=(.+?)".+>'&$player&'<',3)
    _ArrayDisplay($PlayerID, 'Standardsuche')

    [/autoit]

    Lg, Fabian

    Einmal editiert, zuletzt von Fabian (4. August 2010 um 16:22)

  • Danke, aber damit bekomme ich die PlayerID von Kern, Benjamin, ich möchte jedoch die von Kern, Enrico.

  • Danke, aber damit bekomme ich die PlayerID von Kern, Benjamin, ich möchte jedoch die von Kern, Enrico.

    Habe meinen ersten Post editiert, nun wird der richtige Spieler gefunden.
    Ansonsten einfach die Variable $player anpassen.

  • Das Skript gibt mir immernoch die PlayerID von Kern, Benjamin aus. Nämlich die 2357.

  • Hallo,

    da es sich hierbei um die Fortsetzung von

    Es hat sich nun etwas verändert: Nun möchte ich z.B. hieraus Nachname, Vorname, Künstlername, Geburtsdatum, Nationalität, 2. Nationalität und den Fuß auslesen. Dies soll dann automatisch in Eingabefelder einer Homepage kopiert werden. Ist das mit AutoIt möglich?

    handelt, es also eine Spiele-BOT werden soll und dies nach den AGB's sicher verboten ist:

    Vote for close,

    PS.: nach 6 Minuten versuchen seinen Thread zu pushen ist hier auch nicht gerne gesehen,

    mfg (Auto)Bert

  • Hallo,

    ich lese doch nur einen Editor aus und kein Spiel. Von dem Homepagebetreiber, in dessen Website die Daten eingelesen werden solllen, habe ich das O.K. Außerdem bin ich dort auch im Team. Damit wird also kein Browsergame o.ä. ferngesteuert. Und wo habe ich den Thread gepusht? Habe doch nur geschrieben, dass das Skript von Fabien nach seinem Edit immernoch die falsche PlayerID ausliest.


    MfG,
    schw3ndi

  • Hallo,

    ich lese doch nur einen Editor aus und kein Spiel. Von dem Homepagebetreiber, in dessen Website die Daten eingelesen werden solllen, habe ich das O.K. Außerdem bin ich dort auch im Team. Damit wird also kein Browsergame o.ä. ferngesteuert. Und wo habe ich den Thread gepusht?

    Dann schicke bitte eine entsprechende EMail an einen Admin bzw. Moderator nd bis dahin:

    @ all Thread bis zur Klärung nicht supporten

    Habe doch nur geschrieben, dass das Skript von Fabien nach seinem Edit immernoch die falsche PlayerID ausliest.


    MfG,
    schw3ndi

    es handelte sich um Post #3, da stand zu der Zeit als ich geantwortet habe nur ein einsames EDIT, dies hat sich ja mittlerweile geändert

    mfg (Auto)Bert

  • Dann schicke bitte eine entsprechende EMail an einen Admin bzw. Moderator nd bis dahin:

    @ all Thread bis zur Klärung nicht supporten

    es handelte sich um Post #3, da stand zu der Zeit als ich geantwortet habe nur ein einsames EDIT, dies hat sich ja mittlerweile geändert

    mfg (Auto)Bert

    Da geb ich recht :thumbup:
    PLS SPERREN UND NICHT SUPPORTEN