Html Seite mithilfe von ReceiveNetworkData

Anfängerfragen zum Programmieren mit PureBasic.
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Html Seite mithilfe von ReceiveNetworkData

Beitrag 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 = -
4
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Re: Html Seite mithilfe von ReceiveNetworkData

Beitrag 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").
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag von mx03 »

ReceiveHTTPFile() speichert es als eine Datei ab, jedoch will ich den Quelltext direkt auslesen.
4
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag 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
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten