{Question/Request} WinHttp ( Werte auslesen )

02/23/2012 01:42 Lumi#1
Ich habe mal ein Problem mit WinHttp gehabt und zwar, wie man elite*gold auslesen kann und das hab ich auch hinbekommen, aber ich möchte fragen, wie man TBM's und weiteres auslesen kann ? o;

Bei elite*gold ist es ja dieser String hier ..
Code:
([^<]+)
02/23/2012 14:07 Freddy​#2
PHP Code:
#include <WinHttp.au3>
#include <String.au3>

$Input1 InputBox("","ID")
$Input2 InputBox("","PW")
$hSession _WinHttpOpen("Mozilla/5.0 (Windows NT 6.0; rv:10.0.1) Gecko/20100101 Firefox/10.0.1")
$hConnect _WinHttpConnect($hSession"www.elitepvpers.com")
_WinHttpSimpleRequest($hConnect"POST""forum/login.php?do=login""""vb_login_username=" $Input1 "&vb_login_password=" $Input2 "&cookieuser=1&s=&securitytoken=guest&do=login")
$sHTML _WinHttpSimpleRequest($hConnect"GET""/theblackmarket/")
$UserID _StringBetween($sHTML,'/forum/members/','-'&$Input1)
$pTBM _WinHttpSimpleRequest($hConnect"GET""/theblackmarket/profile/"&$UserID[0])

;
Hier auslesen

_WinHttpCloseHandle
($hSession)
_WinHttpCloseHandle($hConnect
Bei ";Hier auslesen" einfach mit StringBetween die gewünschten Werte auslesen.

PS: Die Seite wo du ausliest ist dann dein TBM Profil
02/23/2012 18:07 Lumi#3
Verstehe ich nicht. o__ô
02/23/2012 18:45 jacky919#4
Was verstehst du nicht?
02/23/2012 19:07 Lumi#5
Alles. xD
Ich hab noch nie mit StringBetween gearbeitet.
Nur mit StringRegExp.. ^^
02/23/2012 19:59 Freddy​#6
Schau die die _StringBetween funktion in der Hilfe an. Die ist eingentlich leicht zu verstehen.
02/23/2012 20:32 Lumi#7
Verstehe aber nicht, wie du mit ";hier auslesen" meinst. >__<

Quote:
#include <String.au3>
_StringBetween($s_String, $s_Start, $s_End [, $v_Case = -1])
Quote:
$s_String The string to search.
$s_Start The beginning of the string to find. Passing a blank string starts at the beginning
$s_End The end of the string to find. Passing a blank string searches from $s_Start to end
$v_Case [optional] Case sensitive search. Default or -1 is not Case sensitive else Case sensitive.
Verstehe ich trotzdem nicht. ;D
02/23/2012 20:42 YunoSubs#8
Was möchtest du den gerne auslesen?
02/23/2012 21:33 Lumi#9
Da stehts doch. o;
TBM Profil, bzw. Positive Bewertungen, Negative, Neutrale, etc.. ^^
02/23/2012 21:43 lolkop#10
_StringBetween(<dein string>, <vor deinem teilstring>, <nach deinem teilstring>)

beispiel:
Code:
$string = "peter sucht die wurst"

; wir suchen den artikel von wurst (die)

$artikel = _StringBetween($string, "sucht ", " wurst")
02/23/2012 22:24 Lumi#11
Ist es auch möglich mit StringRegExp auszulesen ? o;

Also beispiel
Das ist elite*gold auslesen

Quote:
$aReturn = StringRegExp($sHTML, '<span class="gold">([^<]+)', 3)
Und bei Positive Bewertung

Quote:
$aReturn = StringRegExp($sHTML, '<td class="green">Positiv</td><td>([^<]+)</td>', 3)
;D Bei mir funktioniert dieses Positive nicht. :D
02/23/2012 23:15 lolkop#12
Quote:
Originally Posted by Lumi' View Post
;D Bei mir funktioniert dieses Positive nicht. :D
ich glaube du hast den regex befehl nicht richtig verstanden...

in eckigen klammern ( "[" ; "]" ) stehen die zugelassenen zeichen.
verwenden wir ein "^" in dieser klammer wird das ganze negiert.

das "+" bedeutet es wird mindestens ein zeichen gelesen.

"[^<]+" bedeutet also lese alle zeichen, bis du auf ein "<" triffst...

wenn du hinter dieser abfrage allerdings noch ein "<" erwartest, wirst du natürlich keine treffer bekommen...
02/23/2012 23:17 Lumi#13
Welchen Wert passt denn zu den Bewertungen ? :P
evtl (\d+?) ? o:
02/23/2012 23:33 lolkop#14
Quote:
Originally Posted by Lumi' View Post
Welchen Wert passt denn zu den Bewertungen ? :P
evtl (\d+?) ? o:
wie wäre es wenn du einfach mal einmal kurz versuchst nachzudenken, anstatt hier zu raten, oder auf lösungen anderer zu hoffen?

lies dir nochmal durch was ich oben geschrieben habe, dann solltest du von selbst auf die lösung kommen...
02/24/2012 14:40 Lumi#15
Hab mir mal ein Tutorial über die Regulären Ausdrücke angeschaut, aber daraus bin ich auch nicht schlau geworden. ;D