auslesen von dynamischen seiten

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

BBPro2

Betreff: auslesen von dynamischen seiten

BeitragMi, Feb 22, 2012 17:07
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

angelehnt an dinge die ich mit der suche gefunden habe habe ich jetzt folgenden code

Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 2

Type inhalt
 Field txt$
End Type

GetData("www.xxlscore.com")

For inhalt.inhalt = Each inhalt
   Print inhalt\txt$ + "!"
Next

WaitKey
End




Function GetData(url$,port=80)
 is_online=OpenTCPStream(url$,port)
 If is_online
  ; Request an das Serverscript schicken
  WriteLine is_online,"GET / HTTP/1.1"
  WriteLine is_online,"Host: "+url$
  WriteLine is_online,"User-Agent: daten"
  WriteLine is_online,"Accept: */*"
  WriteLine is_online,""   
  ; Daten empfangen
  Repeat Until ReadLine(is_online)=""
  Repeat
   in$=Trim(ReadLine(is_online))
   If in$<>""
    i.inhalt=New inhalt
    i\txt$=in$
   EndIf
  Until Eof(is_online)
  CloseTCPStream is_online
 EndIf
End Function



leider funktioniert der code bei der angegebenen domain nicht. es kommen nachrichten, dass ich javascript aktivieren muss etc.
die seite zeigt normalerweise aktuelle ergebnisse von fußball und co. an
möchte mir selbst ein kleines tool erstellen welches diese werte verwendet und bei gewissen toren bestimmte sounds abspielt etc.
in meinem browser ist javascript natürlich aktiviert und die seite funktioniert soweit auch.
wenn ich sie allerdings über diesen blitzbasic code ansteuere funktioniert das ganze nicht.

leider kenn ich mich quasi null mit dem thema aus und auch google hat mir nur wenig brauchbares geliefert da ich nur bedingt weiß wonach ich überhaupt suchen soll.

meine hoffnung: dass sich hier jemand befindet der sich genug damit auskennt um mir weiterzuhelfen Smile
was muss ich ändern/machen/angeben, damit das ganze mir regelmässig die aktuelle html datei liefert, die von der seite generiert wurde ?

Tankbuster

BeitragMi, Feb 22, 2012 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Code liefert dir die Seite im HTML-Code zurück.

Das Problem ist, dass die ganze Seite fast ausschließlich aus Javascript besteht, und du zuerst einen Java-Interpreter schreiben müsstest, um dort einzelne Werte auszulesen.
Twitter
Download Jewel Snake!
Windows|Android
 

BBPro2

BeitragMi, Feb 22, 2012 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
und da gibt es keinen umweg ? z.b mit dem internen html viewer das ganze darstellen lassen und dann die werte auslesen oder so ?

Eingeproggt

BeitragMi, Feb 22, 2012 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht wäre es eine Lösung, mit Wireshark alle Aufrufe die JS in deinem Browser macht zu studieren. Und das "nachzumachen", denn da gehts eigentlich nur um normale GET / POST soweit ich weiß. Wird trotzdem nicht einfach fürchte ich. Auf Facebook hab ich mir das mal anschauen wollen um zu lernen "wie die ticken" und hab so gut wie nix heraus gefunden...

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ZEVS

BeitragMi, Feb 22, 2012 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Website http://www.xxlscore.com/start funktioniert auch ohne JavaScript. Es handelt sich um ein Frameset, wobei speziell der Frame http://www.xxlscore.com/livesc...wahl=start interessant ist.
Der Rest sollte dann möglich sein.

Wieso Wireshark, wenn es Firebug gibt?

ZEVS
 

BBPro2

BeitragMi, Feb 22, 2012 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
öhm könntest du das etwas genauer erklären zeus?
ich versteh nich so ganz was das zu bedeuten hat was du da schreibst Very Happy

ZEVS

BeitragMi, Feb 22, 2012 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Verzeihung, ich vergaß, dass dies kein Forum über Websites und HTTP ist.
Den Link http://www.xxlscore.com/livesc...wahl=start hast du gewiss ausprobiert. Entscheidend ist, dass du hierfür JavaScript ausschaltest, da sonst weitergeleitet wird. Der Quelltext (Strg+U) enthält alle Spieldaten.
Nun muss nur noch der Dateiname+Parameter("livescore?lg=0&auswahl=start") mit übergeben werden:

BlitzBasic: [AUSKLAPPEN]
Function GetData(host$, file$, port=80)
is_online=OpenTCPStream(host$,port)
If is_online
; Request an das Serverscript schicken
WriteLine is_online,"GET /"+file+" HTTP/1.0" ;<- HTTP 1.0 ist geeigneter
WriteLine is_online,"Host: "+host$
WriteLine is_online,"User-Agent: BlitzBasic" ;<- Geschmackssache
WriteLine is_online,""
; Daten empfangen
Repeat Until ReadLine(is_online)=""
Repeat
in$=Trim(ReadLine(is_online))
If in$<>""
i.inhalt=New inhalt
i\txt$=in$
EndIf
Until Eof(is_online)
CloseTCPStream is_online
EndIf
End Function

Sodass
BlitzBasic: [AUSKLAPPEN]
GetData("www.xxlscore.com", "livescore?lg=0&auswahl=start")

liefert.

ZEVS
 

BBPro2

BeitragSa, Jun 30, 2012 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
etwas spät aber vlt liest dus ja trotzdem Very Happy

hab das ganze jetzt bei ner anderen page verwendet und es wird alles ausgelesen
außer die "interessanten" (nämlich dynamischen) daten
alles ist da ... sogar die werbung links. aber die matches fehlen

ich hab folgenden aufruf gemacht:

GetData ("stats.dota2.be", "player/32413589#matchestab")

originallink ist
http://stats.dota2.be/player/32413589

irgendwelche ideen was ich machen kann ? kenne mich leider viel zu wenig damit aus Sad


edit:
ok bin grad durch zufall etwas weiter gekommen. alles was ich jetzt noch wissen müsste ist wie ich
einen klick auf den "next" button simulieren kann.
sprich wie komme ich jetzt an den quelltext der die nächsten 10 games zeigt, etc. ?

der link aus dem quelltext zu
stats.dota2.be/matchstats/32413589

beinhaltet im prinzip alle informationen die ich brauche... allerdings nur für die ersten 10 spiele.
wie komme ich also an die anderen ?
aus dem quelltext werde ich nicht schlauer
 

BBPro2

BeitragSa, Jul 21, 2012 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
hab weiter damit rumgespielt und bin jetzt so weit dass ich über den normalen browser
weiß wie meine anfragen auszusehen haben

und zwar z.B. so:

Code: [AUSKLAPPEN]

http://stats.dota2.be/matchstats/91589391?sEcho=3&iColumns=8&sColumns=&iDisplayStart=0&iDisplayLength=1&mDataProp_0=0&mDataProp_1=1&mDataProp_2=2&mDataProp_3=3&mDataProp_4=4&mDataProp_5=5&mDataProp_6=6&mDataProp_7=7


jetzt ist aber die frage wie ich in blitzbasic den string welchen der browser mir hier ausgibt auslesen kann.
in dem speziellen fall wäre das (im moment - wenn ihr es testet ist es vermutlich bereits ein anderer...)

Code: [AUSKLAPPEN]

{"aaData":[["26713522","Broodmother","40:17","0","3","5","6","319"]],"sEcho":3,"iTotalRecords":"1238","iTotalDisplayRecords":"1238"}


kann mir jemand erklären wie ich diesen string auslesen kann ?

edit:
wichtig zu wissen ist noch dass wenn ich ein "normales" runterladen der datei versuche
automatisch die datei
http://stats.dota2.be/matchstats/91589391
runtergeladen wird welche informationen über die letzten 10 spiele enthält.
die parameter iDisplayStart und iDisplayLength werden so also ignoriert. und das darf nicht sein

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group