Seite 1 von 1

Html Seite mithilfe von ReceiveNetworkData

Verfasst: 23.06.2008 18:44
von mx03
1. Ich würde gerne die Website runterladen und auslesen, jedoch gibt er mir bei der Site nur bis zu einer gewissen Stelle den Source aus. Hab auch schonmal die DataBuffer Länge geändert ohne Erfolg.
2. Wie kann ich Cookies auslesen?

thx :D

Code: Alles auswählen

; English forum: http://www.purebasic.fr/english/viewtopic.php?t=6642&highlight=
; Author: ricardo
; Date: 20. June 2003
; OS: Windows
; Demo: Yes

InitNetwork() 

ConnectionID = OpenNetworkConnection("www.spin.de", 80) 
If ConnectionID 
  com$="GET http://www.spin.de/hp/EmpireOfFuture/ HTTP/1.1"+Chr(13)+Chr(10) 
  com$=com$+"Accept: */*"+Chr(13)+Chr(10) 
  com$=com$+"Accept: text/html"+Chr(13)+Chr(10) 
  com$=com$+"Host: "+host$+Chr(13)+Chr(10) 
  com$=com$+"User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9) Gecko/2008061015 Firefox/3.0"+Chr(13)+Chr(10) 
  com$=com$+Chr(13)+Chr(10) 
  Res = SendNetworkData(ConnectionID,@com$,Len(com$)) 

    Repeat 
    Delay(10) 
    Result = NetworkClientEvent(ConnectionID) 
  
    Select Result 
  
    Case 2 
      Content$ = Space(233504) 
      ReceiveNetworkData(ConnectionID,@Content$,233504) 
      Ok = 1 
      MessageRequester("Done!","Your Data" + Chr(13) + Chr(10) + Content$,0) 
      CloseNetworkConnection(ConnectionID) 
    EndSelect 
    
    Until Ok = 1 
EndIf 

; IDE Options = PureBasic v4.00 (Windows - x86)
; Folding = -

Verfasst: 23.06.2008 22:30
von HeX0R
1.)

Code: Alles auswählen

InitNetwork()

Procedure Main()
	Protected ConnectionID.l = OpenNetworkConnection("www.spin.de", 80)
	Protected com$, *Buffer, Res.l, Site.s

	If ConnectionID
		com$ = "GET http://www.spin.de/hp/EmpireOfFuture/ HTTP/1.1" + #CRLF$
		com$ + "Accept: */*" + #CRLF$
		com$ + "Accept: text/html" + #CRLF$
		com$ + "Host: " + host$ + #CRLF$
		com$ + "User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9) Gecko/2008061015 Firefox/3.0" + #CRLF$
		com$ + #CRLF$

		SendNetworkData(ConnectionID, @com$, StringByteLength(com$))
		*Buffer = AllocateMemory($10000)

		CreateGadgetList(OpenWindow(0, 0, 0, 640, 480, "Test", #PB_Window_SystemMenu))
		WebGadget(0, 5, 5, 630, 230, "")
		EditorGadget(1, 5, 235, 630, 230, #PB_Editor_ReadOnly)

		Repeat
			Select WaitWindowEvent(10)
				Case #PB_Event_CloseWindow
					Break
			EndSelect

			Select NetworkClientEvent(ConnectionID)
				Case #PB_NetworkEvent_Data
					Res = ReceiveNetworkData(ConnectionID, *Buffer, MemorySize(*Buffer))
					Site + PeekS(*Buffer, Res)
					SetGadgetItemText(0, #PB_Web_HtmlCode, Site)
					ClearGadgetItemList(1)
					AddGadgetItem(1, -1, Site)
			EndSelect
		ForEver

		CloseNetworkConnection(ConnectionID)
	EndIf
EndProcedure

Main()
2.) k.a.

Re: Html Seite mithilfe von ReceiveNetworkData

Verfasst: 23.06.2008 22:47
von AND51
> Ich würde gerne die Website runterladen und auslesen
ReceiveHTTPFile() hat ausgedient?

> Wie kann ich Cookies auslesen?
Achte auf die Zeile "Set-Cookie" im HTTP-Header. Auch JavaScripts können Cookies setzen und löschen ("document.cookie").

Verfasst: 24.06.2008 19:31
von mx03
ReceiveHTTPFile() speichert es als eine Datei ab, jedoch will ich den Quelltext direkt auslesen.

Verfasst: 25.06.2008 20:13
von PMV
Richtig, und diese HTML-Datei kannst du öffnen, siehe File-Lib.
Das sollte reichen. :wink: Die Datei kannst du ja nach dem bearbeiten
wieder löschen.

Der andere weg wäre, die HTML-Seite selber runter zu laden. Da du aber
keinen voll funktionsfähigen HTTP-Client benötigst, sollte die neue HTTP-
Lib für dich reichen. <)

MFG PMV

Verfasst: 25.06.2008 20:32
von AND51
PMV hat geschrieben:Richtig, und diese HTML-Datei kannst du öffnen, siehe File-Lib.
Das sollte reichen. :wink: Die Datei kannst du ja nach dem bearbeiten
wieder löschen.
Ich dachte, da würd er selber drauf kommen...