HTML Queelcodes auslesen und in ihnen suchen?

09/25/2010 18:48 ♠As♠#1
HI,
meine Frage ist wie kann ich mit AutoIT HTML Quellcodes auslesen und zwar das soll er machen :

1.Quellcode öffnen
2.ein Wort suchen
3.exestiert dieses Wort MsgBox öffnen
3.2.exestert es nicht Msgox mit error öffnen

Ich hoffe ihr könnt mir helfen

(vl könnt ihr das script gleich machen und mir erklären!)
09/25/2010 19:35 lolkop#2
das ist doch wohl nicht dein ernst -.-

Code:
_INetGetSource()
StringInStr()
quellcode einlesen per inetgetsource und per stringinstr gucken ob dein wort im code vorkommt.

die if abfrage wirst du wohl selbst zusammen gesetzt bekommen.
09/25/2010 19:38 ♠As♠#3
ich habe es so gemacht deshab frage ich

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

Local $epvp = _IECreate("http://www.elitepvpers.com/forum/s4-league-hacks-bots-cheats-exploits/755859-xxl-trainer-alle-public-hacks-14.html")
Local $htmlopen = _IEBodyReadHTML($epvp)
Local $suche = _StringBetween($htmlopen,"Erhaltene Thanks:","")
MsgBox(0,$suche,$suche)
aber das ging nicht aber danke

Edit:
Das von dir kenne ich ja das überprüft nur Einen Satz z.B und dann was in dem satz drinn steht nur ich will ja eine Zahl neben einem satz wissen
09/25/2010 20:28 lolkop#4
dann solltest du das vielleicht auch sagen. du hast gesagt, du willst gucken, ob ein wort existiert und wenn es existiert willst du eine msgbox anzeigen.

das parsen erledigt man am besten per stringregexp funktionen.

hier ein beispiel das ausliest, wie viele leute dir für post 1 gedankt haben:
Code:
#include <inet.au3>
$source = _INetGetSource("http://www.elitepvpers.com/forum/s4-league-hacks-bots-cheats-exploits/755859-xxl-trainer-alle-public-hacks.html")
$thanks = StringRegExp($source, "The Following (\d*?) Users Say Thank You to ♣As♣ For This Useful Post", 1)
ConsoleWrite($thanks[0]&@CRLF)
um zu verstehen, wie man regexp funcs nutzt kannst du einfach die hilfe dazu lesen, oder google fragen. da gibt es nahezu unendlich viele tutorials zu im netz.
09/25/2010 20:30 ♠As♠#5
du bist der beste :) danke
09/25/2010 23:18 PenGuin :O#6
As ich hatte dir schon in autoit.de gesagt, dass StringBetween ein Array liefert ;)
Du hast einfach nur die [0] an deinem $suche vergessen in der MsgBox
09/26/2010 09:52 ♠As♠#7
Quote:
#include <IE.au3>
#include <String.au3>
Local $epvp = _IECreate("http://www....")
Local $htmlopen = _IEBodyReadHTML($epvp)
Local $suche = _StringBetween($htmlopen,"Erhaltene Thanks:","")
MsgBox(0,$suche,$suche[0])
Würde er so die Zahl neben Erhaltene Thanks : suchen und mir als Msgb Box geben?
Da kommt bei mir so ein riesen fänster mit dem Halben Quellcode ! :(
09/26/2010 10:00 Shadow992#8
Quote:
Originally Posted by ♣As♣ View Post
Würde er so die Zahl neben Erhaltene Thanks : suchen und mir als Msgb Box geben?
Da kommt bei mir so ein riesen fänster mit dem Halben Quellcode ! :(
Das ist ja auch kein Wunder...
Du lässt die Zeichen zwischen "Erhaltene Thanks:" und "" extrahieren, da es das Zeichen "" nicht gibt, liefert StringBetween den kompletten restlichen Source.
09/26/2010 11:12 omer36#9
vllt könnt ihr mir auch noch kurz helfen...
wollt mal bischen mit dem "StringRegExp" rumprobieren und das mit "anzahl der thx" klappt zwar, aber bei der anzahl der downloads klappt es nicht,

PHP Code:
#include <inet.au3>
$source _INetGetSource("http://www.elitepvpers.com/forum/epvp-coders-releases/672447-kleines-hilfreiches-infotool.html")
$downloads StringRegExp($source"InfoTool v1.0.rar</a> (360,5 KB, (\d*?)x aufgerufen)"1)
ConsoleWrite($downloads[0]&@CRLF
fehler meldung: ==> Subscript used with non-Array variable
und wenn die den array "[0]" lösche kommt " 0 " raus...
versteh ich grad nicht, warum das so ist....weil bei der anzahl von thx es ging...
09/26/2010 12:33 PenGuin :O#10
Könntest du mir mal einen Beispiel Text geben?
Dann mach ich dir dein Pattern.
Also ist eig. "InofTool v1.0.rar (360,5 KB, 12x aufgerufen)" als Beispiel richtig?

EDIT: Wenn das Beispiel stimmt, sollte dieses Pattern gehen:

Code:
InfoTool v1.0.rar \(360,5 KB, \d*?x aufgerufen\)
Damit gibt er dir den ganzen Text aus, den kannst du dann ja weiter formatieren mit StringBetween etc.
09/26/2010 13:06 omer36#11
im qeulltext steht es so:
>InfoTool v1.0.rar</a> (360,5 KB, 37x aufgerufen)</td>
(ist doch nur dieser teil, den ich jetz brauche oder? )

wenn ichs ohne diese </a> drinne versuche gehts auch nicht...
$downloads = StringRegExp($source, "360,5 KB, (\d*?)x aufgerufen", 1)

worauf muss mann da denn dann achten, wenn mann den pattern anlegen will?
09/26/2010 13:07 Shkal#12
Wenn hier schon mit Patterns um sich geworfen wird:

Code:
$sSource = BinaryToString(InetRead("http://www.elitepvpers.com/forum/epvp-coders-releases/672447-kleines-hilfreiches-infotool.html"))

$aDownloads = StringRegExp($sSource, ">([^<]+)</a>[^,]+, (\d+) views", 3)
For $i = 0 To UBound($aDownloads) - 2 Step 2
    MsgBox(0, "", $aDownloads[$i] & ": " & $aDownloads[$i + 1])
Next
Ich empfehle dazu dieses Tutorial, wenn es dich wirklich interessiert:
[Only registered and activated users can see links. Click Here To Register...]
09/26/2010 14:03 PenGuin :O#13
Naja er hat vergessen das ( zu escapen..
Wenn ers im Klartext schreiben will.
Ansonsten kann er sich die RegExBuddy downloaden :)
09/26/2010 16:17 ♠As♠#14
Wie lautete dann das richtige Script?
09/26/2010 16:24 PenGuin :O#15
Was?
Wir helfen gerade omer :D
Ich weiß gerade nicht was du meinst..