Variablen(Label) von Webseiten auslesen?

04/11/2014 13:50 nawiat100#1
Hey Leute,

ich würde gerne ein Label auf einer Website auslesen, welches sich sekündlich ändert. Der Quellcode des Labels ist dieser:


so, diese Zahl möchte ich auslesen, die steht auch auf der Website. Wie mache ich das?
Wenn ich es NUR mit RegEx machen kann, wäre es nett wenn mir jemand ein Code zum auslesen basteln könnte, weil ich mich damit überhaupt nicht auskenne :D

Grüße
nawiat
04/11/2014 13:57 Shawak#2
Du kannst das auch per Split machen wenn du dir Regex nicht anschauen willst:

Code:
var split = quellcode.Split("<span id=\"resources_metal\" class=\"\">")[1];
split = split[1].Split("</span">);
var ret = split[0].Trim();
Kurzfassung dementsprechend:
Code:
var ret = quellcode.Split("<span id=\"resources_metal\" class=\"\">")[1].Split("</span>")[0].Trim();
Das Ganze kombinierst du mit einem HttpWebRequest (Tutorials dazu gibt es haufenweise, auch hier auf Epvp).

Lg
04/11/2014 14:02 nawiat100#3
ookay, mit httpWebRequest hab ich mein Login aufgebaut was auch funzt aber mit dem Code kann ich iwi nichts anfangen. "var" & "ret" & "Quellcode" & "resources_metal" bringen bei mir schonmal eine Fehlermeldung..

wäre cool wenn du es ein wenig näher erklären könntest ^^

P.S: sieht mir aus wie C++ oder C# Code wegen den ";", bräuchte aber VB.net ;) sry, hätte ich gleich sagen müssen.

Danke dir!
nawiat
04/11/2014 14:20 tolio#4
als einer der ganz wenigen Sprachen lassen sich c# und vb.net ohne probleme hin und her konvertieren
zB
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
04/11/2014 14:29 nawiat100#5
Okay fettes Danke ! :D wusste ich auch noch nicht.

Aber was ist in dem Code mit Quellcode.Split gemeint ?
weil Quellcode gibt es bei mir net.

Danke euch ^^
04/11/2014 14:34 Syc#6
quellcode ist vermutlich die variable, in der der quelltext steht, denn du vorher runtergeladen hast (per webrequest).
04/11/2014 14:41 nawiat100#7
ich habe diese Funktionen:



und das was passiert wenn auf Button gedrückt wird:


^^ sry bin nen bissel schwer von Begriff wenn es um Quellcode AUSLESEN geht XD
04/11/2014 14:54 tolio#8
und jetzt? dein post beinhaltet weder eine frage noch ein offensichtliches problem
04/11/2014 14:58 nawiat100#9
Oben wurde gesagt das ich den Code in mein HttpWebRequest einbauen soll, ich habe ja ein aber wo baue ich den Jetzt ein ? wo habe ich den Quellcode überhaupt runtergeladen ? Wenn ich das nicht gemacht habe, wie lade ich ihn dann runter ? ^^

ich danke für eure Mühe :)
04/11/2014 15:02 tolio#10
html = .GetResponsePost("...")

html enthält jetzt den quellcode der seite die du augerufen hast
04/11/2014 15:08 nawiat100#11
ne der html String enthält alles von der Login Seite, wenn ich ein neuen mache mit dem normalen Ogame Link dann geht es nicht wenn ich statt "quellcode" "html2" schreibe.
Das nimmt er nicht an.

auserdem möchte er hier zwei Parameter und hier übergebe ich ja was!

html = .GetResponsePost("http://de.ogame.gameforge.com/main/login", "kid=" & "&uni=" & Uni & "&login=" & username & "&pass=" & password)

Wenn ich zweimal den Link nehme gehts auch net.
04/11/2014 15:21 tolio#12
sry aber wenn du irgendwie nicht weist wie eine variblen deklaration und ein funktionsaufruf funktioniert solltest du erstmal die grundlagen und den umgang mit der entwicklungsumgebung lernen

wenn so wenig kenntnisse da sind kann man nicht richtig helfen außer nen fertigen code posten und das ist ja nicht sinn der sache
04/11/2014 15:23 Mostey#13
Quote:
Originally Posted by nawiat100 View Post
ne der html String enthält alles von der Login Seite, wenn ich ein neuen mache mit dem normalen Ogame Link dann geht es nicht wenn ich statt "quellcode" "html2" schreibe.
Das nimmt er nicht an.
Ah, es geht also nicht? Das ist natürlich eine sehr genaue Fehlerbeschreibung. Da du nicht einmal die Grundlagen beherrscht, ist es nahezu unmöglich zu verstehen, was du nicht hinbekommst.


Übrigens würde ich eher zu einem HTML/XHTML/XML (je nach Seite) raten. Damit hast du es einfacher, es bleibt übersichtlicher und es ist wartbarer. Außerdem ist RegEx hier nicht angebracht, da du versuchst eine komplette Sprache zu analysieren. Das habe ich damals auch gemacht und mir wurde (zurecht) ebenfalls aus diesen Gründen abgeraten.
04/11/2014 15:26 nawiat100#14
nagut dann wende ich mich woanders hin. ^^

habs so versucht:

Dim downloadString As String
Using wc As New Net.WebClient()
downloadString = wc.DownloadString("http://de.ogame.gameforge.com/")
End Using

Dim ret = downloadString.Split(CChar("<span id=""resources_metal"" class="""">"))(1).Split(CChar("</span>"))(0).Trim()

MessageBox.Show(ret)

Funzt nur auch net :D

Mir werden zwar hier Antworten gegeben, aber die Funktionieren alle nicht XD da kann ich auch nicht für. Und wenn ich so wenig kenntnisse habe...? warum hab ich dann das Login hinbekommen ? :D
04/11/2014 15:32 Mostey#15
Quote:
Originally Posted by nawiat100 View Post
nagut dann wende ich mich woanders hin. ^^
Mach das, hilft dir sicherlich sehr auf Dauer. Kannst ja in Zukunft für jede Codezeile irgendwo nachfragen, ob dir das jemand programmiert.

Quote:
Originally Posted by nawiat100 View Post
habs so versucht:

Dim downloadString As String
Using wc As New Net.WebClient()
downloadString = wc.DownloadString("http://de.ogame.gameforge.com/")
End Using

Dim ret = downloadString.Split(CChar("<span id=""resources_metal"" class="""">"))(1).Split(CChar("</span>"))(0).Trim()

MessageBox.Show(ret)
Ich kenne mich nicht mit VB aus, aber der Request sieht vernünftig aus. Das mit dem RegEx kann ich nicht überprüfen, das musst du selber checken. Benutz' einfach den Debugger und schau, ob ret nach der Operation null ist.

Quote:
Originally Posted by nawiat100 View Post
da mir hier zwar Antworten gegeben werden, aber alle nicht Funktionieren XD
Nichts funktioniert, wir verarschen dich hier nur.

Quote:
Originally Posted by nawiat100 View Post
da kann ich auch nicht für. Und wenn ich so wenig kenntnisse habe...? warum hab ich dann das Login hinbekommen ? :D
Du kannst etwas dafür. Du hast den Login warscheinlich hinbekommen, weil du vorhandenen Code kopiert hast. Oder, wie du nun versuchst, Leute dazu gebracht hast, deinen Code zu schreiben.