HTML-Code aus Frame auslesen ...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Sicher das du den Übersichtslink richtig erwischt hast ?

sollte z.B. so aussehen:

Code: Alles auswählen

http://XXX.ogame.de/game/index.php?page=overview&session=3323c84321c2
Dann hab ich per FindString "session=" gesucht und den kompletten Rest (also die ID) eingelesen und es geht also es sieht bei mir nicht nach dem 1. frame aus sondern....

Code: Alles auswählen


<body>
<script language="JavaScript" src="js/wz_tooltip.js"></script>
<div id='header_top'>
<center>
<table class='header'>
<tr class='header' >
<td class='header' style='width:32;' >
	  <table class='header'>
    <tr class='header'>
     <td class='header'><img src="http://XXX.ogame.de/evolution/planeten/small/s_wasserplanet05.jpg" width="50" height="50"></td>
     <td class='header'>
	  <table class='header'>
...
...
nach dem Header der Htmldatei natürlich...

Also alles so wie es zum auslesen gebraucht wird....[/code]
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Beitrag von DerProgrammierer78 »

Wenn ich den habe, dann stimmt das was du sagst, aber den müsste der user jedes mal selber eingeben ... und das ist zu umständlich ...

Das muss man doch automatisieren können ... oder ?
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

das get bestimmt.... allerdings weiss ich nicht wie... wusel grad das forum durch ;)

Ich sagte ja saumäßig umständlich.... aber naja ich suche weiter... irgendwo hab ich was von wegen HTTP Requests abfangen gelesen, und das würde allerdings wieder vorraussetzen, das du sozusagen selbt einen client basteln müsstest....

Edit: Hab da ne Menge gefunden allerdings, wenn ich ein Post sende kommt als antwort immer nur ne Fehlermehldung....

Das wird wohl so sein, das neben den Daten,die die Seite im Quellcode hat auch noch irgendwelche berechnungen mit angestellt werden.

Also doch die umständliche variante ;)
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Hatte letzte Nacht nichts zu tun und so hab ich dann mal in meinen "älteren"
Ordnern geschaut und dann....

Code: Alles auswählen


Procedure.s OGame_Login(Uni.s,User.s,Passwort.s)

Protected SessionID.s
Protected Link.s

Uni=LCase(Uni)

Link.s="http://"+Uni+".ogame.de/game/reg/login2.php?v=2&universe="+Uni+".ogame.de&"
Link.s=Link.s+"login="+User+"&pass="+Passwort+"&button.x=14&button.y=6"

URLDownloadToFile_(0,Link.s,GetTemporaryDirectory()+"sessionid.txt",0,0)

If ReadFile(1,GetTemporaryDirectory()+"sessionid.txt")

  While Not Eof(1)
    
    SessionID.s=""
    
    string.s=ReadString(1)
    string2.s=""
    
    x=FindString(string,"&session=",1)
    
    If x>-1
    
      For i=x+9 To Len(string)
    
        x$=Mid(string,i,1)
    
        If x$="&"
          SessionID.s=string2
          Break
        Else
          string2=string2+x$
        EndIf
    
      Next i
    
    EndIf
    
    If SessionID.s<>""
      Break
    EndIf
    
  Wend
  
  CloseFile(1)
  DeleteFile(GetTemporaryDirectory()+"sessionid.txt")
  
EndIf


ProcedureReturn SessionID.s
EndProcedure

SessionID.s=OGame_Login("Uni30","Username","Passwort")
Debug sessionid

Also mit meinen Daten klappts... zumindest mit der Uni30.

Wenn man die SessionID hat, kann man die erste seite mit

Code: Alles auswählen

Seite1.s="http://XXX.ogame.de/game/index.php?page=overview&session="+SessionID.s
einlesen und von dort aus überall hin.... Rohstoffe,Gebäude,Forschung usw usf...
man muss halt nur die seiten per UrlDownloadToFile runterladen und dann die Daten mit Readfile auslesen...

Ist womöglich immer noch umständlich , aber es funktioniert.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten