[IE.au3] quelltextproblem beim script

10/22/2010 14:41 antrix99#1
hallo

ich habe ein problem bei meinem script.

ich will mit der IE.au3 einen wert aus einem quelltext einer seite auslesen
aber bekomme immer den wert "0" ausgelesen obwohl das nicht so sein sollte.

um euch das besser zu verdeutlichen hier mein script + quelltext:


hier der quelltext:


ich möchte aus diesen quelltext "1,51" ausgelesen haben aber bekomme nur eine "0" und ich weiß das dieses schema mehrmals im quelltext vorkommt ... aber nicht mit "0"

was mache ich falsch und wie kann ich nun diese 1,51 auslesen?

ps: der wert 1,51 aus dem quelltext ändert sich von tag zu tag

pps: habe noch keine ahnung wie man mit strinbetween und so umgeht ... glaube das ich total aufn holzweg bin :/
10/22/2010 16:32 omer36#2
aus MsgBox(64,"testing", $string) wird

MsgBox(64,"testing", $string[0])

schnell in der hilfe nachgeschaut:
Success: A 0 based $array[0] contains the first found string.

;)
10/22/2010 18:24 antrix99#3
Subscript used with non-Array variable
MsgBox(64,"testing", $string[0])
MsgBox(64,"testing", $string^ ERROR

daraus wird wohl nichts :C und ich rätsel immernoch
10/22/2010 20:14 omer36#4
hmm..

also bei mir klappts...

PHP Code:


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


$oIE=_IECreate("http://www.elitepvpers.com/forum/epvp-coders-releases/672447-kleines-hilfreiches-infotool.html",0,0)
$sHTML _IEDocReadHTML ($oIE)
$string _stringbetween($sHTML,'<strong>The Following','Users Say Thank You to omer36 For This Useful Post:</strong>')

MsgBox(64,"testing"$string[0]) 
10/22/2010 22:20 PenGuin :O#5
Quote:
Originally Posted by antrix99 View Post
Subscript used with non-Array variable
MsgBox(64,"testing", $string[0])
MsgBox(64,"testing", $string^ ERROR

daraus wird wohl nichts :C und ich rätsel immernoch
Dann ist dein Stringbetween falsch...
10/23/2010 13:23 antrix99#6
ich hab in erfahrung gebracht das _stringbetween garnicht erst die stelle im quelltext findet und deshalb eine "0" ausgibt ... aber woran kann das jetzt legen das _stringbetween die stelle nicht findet?
10/23/2010 13:28 PenGuin :O#7
Quote:
Originally Posted by pinguin94 View Post
Dann ist dein Stringbetween falsch...
Parameter sind falsch...

Schick mal so ca 5 Zeilen Quelltext und markier den Wert, den du haben willst.
Ich schreib dir eben was dafür ...
10/23/2010 14:18 antrix99#8

der rote wert soll ausgelesen werden

btw: ich hab mal eine *.txt mit 3 wörtern in einer reihe gefüllt und habe _stringbetween nach dem mittleren wort suchen lassen und selbst da funktioniert es nicht

und vielen dank für eure hilfe
10/23/2010 16:00 PenGuin :O#9
Hast du den Quellcode auch aus einem AutoIt Script übernommen oder hast du Rechtsklick Quellcode anzeigen im Browser gemacht?
Weil der Quellcode kann unterschiedlich sein...

Wenn dus über AutoIt gemacht hast, dann funktioniert das hier:

Code:
#include <String.au3>

;======================================================
;$hFile = FileOpen(@ScriptDir & "\String.txt")        #
;$sRead = FileRead($hFile)                            #
;FileClose($hFile)                                    #
;======================================================

$aMatch = _StringBetween($sRead, '<td class="tdn" style="text-align:center;">', ' <img src="img/new-design-blau/icons/icon_money.jpg"')
ConsoleWrite($aMatch[0] & @CRLF)

Den kommentierten Part einfach mit deiner Quellcodeauslesung ersetzen und ggf. $sRead in _StringBetween anpassen.

In der String.txt stand einfach dein Quellcodestring.
10/23/2010 17:22 antrix99#10
ich habe den quelltext per $sHTML = _IEDocReadHTML ($oIE) ausgelesen und bekam auch den richtigen quelltext wo halt alles richtig drin stand

also ich hab deine vorgabe mal in mein script übernommen welches jetzt so aussieht:


ich bin mir sicher das ich etwas falsch gemacht habe oder autoit mag mich nicht mehr
10/23/2010 18:02 PenGuin :O#11
Code:
$sHTML = _IEDocReadHTML ($oIE)
$aMatch = _StringBetween($sHTML, '<td class="tdn" style="text-align:center;">', ' <img src="img/new-design-blau/icons/icon_money.jpg"')
MsgBox(0,"", $aMatch[0])
Test mal das.
10/23/2010 18:38 antrix99#12
seltsamerweise funktioniert selbst das nicht ... frage mich wie all die anderen das machen bei denen bots alles mögliche auslesen können
10/23/2010 19:02 PenGuin :O#13
Bei mir gehts.
10/23/2010 19:28 ZaZiZu#14
Quote:
Originally Posted by antrix99 View Post
seltsamerweise funktioniert selbst das nicht ... frage mich wie all die anderen das machen bei denen bots alles mögliche auslesen können
wenn ich bei mir in
PHP Code:
$sHTML _IEDocReadHTML ($oIE)
$aMatch _StringBetween($sHTML'<td class="tdn" style="text-align:center;">'' <img src="img/new-design-blau/icons/icon_money.jpg"')
MsgBox(0,""$aMatch[0]) 
statt $sHTML den ganzen quellcode einfüge, kommt bei mir in der msgbox 1,51 raus
hier der gesammtcode (war halt nur zum test)

also eventuell liegt es bei dir an dem quellcode, der rausgelesen wird (wahrscheinlich wird der da irgendwie verändert)
kannst ja nochma damit versuchen:

PHP Code:
$sHTML _IEDocReadHTML ($oIE)
$aMatch _StringBetween($sHTML""text-align:center;">" " <")
MsgBox(0,""$aMatch[0]) 
das weitet die suche halt bisschen weiter aus, fals irgendwas davor im quelltext geändert wird

ansonsten schau erstmal ob der quelltext, der abgelesen wird
1. richtig ist
2. sich nicht verändert (also die suchhilfswerte immer so bleiben)
10/23/2010 19:52 antrix99#15
jetzt hab ich die lösung gefunden

es lag an den groß und kleinbuchstaben im quelltext ... wenn man ihn sich so per browser guckt ist alles klein aber wenn man ihn per autoit in eine txtdatei speichert ist der echte quelltext in groß und kleinbuchstaben

es lag also nur an den groß und kleinbuchstaben und auch teils am script selbst

super das ihr mir geholfen habt leute ^^

thx for all