Quelltext auslesen (bot)

  • Hi^^
    bin schon relativ lange auf dieser seite und habe bisher ohne was schreiben zu müssen alles hinbekommen, aber jetzt funzt etwas nicht und desshalb frage ich mal, da ihr hier immer sehr schnell und gut helft hoffe ich das es so bleibt^^.


    Also zu meinem Problem. Ich möchte für einen Browsergame bot einen Quelltext auslesen um hp werte und geldstand sowie XP abzufragen^^ habe shcon gesucht gehabt aber das meiste hatte leider nicht geklappt.

    Also das game um welches es sich handelt ist Freewar.

    [autoit]


    $Read =_INetGetSource("http://88.198.6.23/freewar/internal/item.php")
    $xp= _StringBetween ($Read, '<b>Geld: </b>', ' <img src=' )

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

    MsgBox(64,$xp,"mal sehen")

    [/autoit]

    also um zu testen ob er das gold richtig ausließt hatte ich das so probiert aber alles was er mir sagt ist "0" kA warum es nicht klappt Q_Q.


    MfG
    Shiru

    Einmal editiert, zuletzt von Shiru (19. Mai 2008 um 16:29)

  • Da bei _StringBetween mehrere Lösungen möglich sind, wirds in ein Array gesetzt. Also versuch mal $xp[0].

    Edit: Dein Link enthält kein Quellcode, weisst du aber warscheinlich selbst.
    Beispiel hier:

    [autoit]

    #include <Inet.au3>
    #include <String.au3>
    $Read =_INetGetSource("http://google.de")
    $xp= _StringBetween ($Read, "<b>", "</b>")
    MsgBox(64,"", $xp[0])

    [/autoit]
  • [autoit]

    MsgBox(64,$xp[0],"mal sehen")

    [/autoit]


    wenn dus so meintest das geht leider nicht er sagt mir: Error: Subscript used with non-Array variable

  • Da bei _StringBetween mehrere Lösungen möglich sind, wirds in ein Array gesetzt. Also versuch mal $xp[0].

    Edit: Dein Link enthält kein Quellcode, weisst du aber warscheinlich selbst.
    Beispiel hier:

    [autoit]

    #include <Inet.au3>
    #include <String.au3>
    $Read =_INetGetSource("http://google.de")
    $xp= _StringBetween ($Read, "<b>", "</b>")
    MsgBox(64,"", $xp[0])

    [/autoit]

    doch doch der link enthälteinen quellcode bloß erst wenn man mal sich angemeldet hat. Bei freewar ist das fenster sozusagen aufgeteilt in mehrere bereiche die unterschiedliche inet adressen haben hmm evtl liegt das problem ja daran oO

    MfG
    Shiru

  • _INetGetSource loggt aber nicht ein
    ...
    Du musst dich aber erst einloggen :) Daher mit _IECreate und _IEBodyReadHTML arbeiten :)

  • könnteste dafür in diesemfall ein beispiel machen? weil weiß nicht wie ich die befehle dann anweden soll. Wäre sehr nett danke schonmal =)

  • [autoit]

    #include <IE.au3>
    $oIE = _IECreate ("http://autoit.de")
    $sHTML = _IEDocReadHTML ($oIE)
    MsgBox(0, "Document Source", $sHTML)
    $sHTML = _IEBodyReadHTML ($oIE)
    MsgBox(0, "Document Source", $sHTML)
    _IEQuit ($oIE)

    [/autoit]


    Hoffe ja da sdu e snicht nur für ein Speiel Bot brauchst

  • danke dir werds dann mal ausprobieren. Ne im prinzip nicht ist mehr rum gespiele um zu sehen was so machbar ist. Keine sorge ich versäuche keine games mit bots xD hab ich net vor^^


    MfG
    Shiru

    Edit: Okay ausgeben tut er mir den kompletten quellcode damit und wie bekomm ich das hin das er mir halt dann nur
    den bestimmten wert daraus abließt? Evtl stell ich mich bisschen doof an ^^" bin aber noch relativ neu.

    Edit2: Also hab Gemekrt das _IEBodyReadText besser und leichter ist aber wenn ich dann das so mache:

    [autoit]

    $xp = _Stringbetween ($oIE,'Lebenspunkte: (','/15)')

    [/autoit]


    Dann Kommt da ne 0 obwohl ich im $sHTML komplett alles drin stehen habe o_O

    2 Mal editiert, zuletzt von Shiru (19. Mai 2008 um 15:14)

  • [autoit]

    #include <Array.au3>
    #include <IE.au3>
    $oIE = _IECreate ("http://autoit.de/index.php?page=Thread&threadID=6276&highlight=doof")
    $sHTML = _IEBodyReadHTML ($oIE)
    $sText = _IEBodyReadText ($oIE)
    _IEQuit ($oIE)
    $Test = StringSplit( $sHTML, '<SPAN class=highlight>',1)
    $Test = StringSplit( $Test[$Test[0]], '</SPAN>',1)
    $Test = $Test[1]
    MsgBox(0,"Inhalt",$Test)
    MsgBox(0,"Nur Text",$sText)

    [/autoit]
  • Naja mit Stringsplitt kann ich das halt so aufteilen glaubsch das das übrig bleibt was ich brauche aber meine frage ist nur noch wieso _StringBetween nicht will wenn das richtig geht und keine 0 ausgibt funzt alles 1A ^^

    Danke für die gute hilfe hier =)


    MfG
    Shiru

  • Hallo
    beachte das der Html Code von der Webseite etwas anderes aussieht als mit den FF oder normalen IE
    speicher dir den doch mal zwischen
    Ansonsten :

    [autoit]

    #include <String.au3>
    #include <array.au3>
    #include <IE.au3>
    $oIE = _IECreate ("http://autoit.de/index.php?page=Thread&threadID=6276&highlight=doof")
    $sHTML = _IEBodyReadHTML ($oIE)
    $sText = _IEBodyReadText ($oIE)
    _IEQuit ($oIE)
    $aArray1 = _StringBetween($sHTML, '<SPAN class=highlight>', '</SPAN>');Not using SRE
    _ArrayDisplay($aArray1, 'Default Search')
    MsgBox(0,"Nur Text",$sText)

    [/autoit]