Bonjour,
Je souhaiterais faire une appli assez basique, où j'ai besoin de récupérer le code source d'une page web, sans la télécharger dans un navigateur
Est-il possible de faire cela ?
Merci par avance pour votre aide
Bonjour,
Je souhaiterais faire une appli assez basique, où j'ai besoin de récupérer le code source d'une page web, sans la télécharger dans un navigateur
Est-il possible de faire cela ?
Merci par avance pour votre aide
No problem : un NMHTTP (pê pas dispo dans les versions persos) et un simple Get(URL), ou un TWebBrowser invisible et un Navigate. Voire le IdHTTP (Indy), ou d'autres solutions encore...
Ils ont tous des propriétés Body ou IneerHTML qui contiennent le source.
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
voila ce que j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 Unit Unit6; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, WinInet; Type TForm6 = Class(TForm) Button1: TButton; Memo1: TMemo; Procedure Button1Click(Sender: TObject); Private Function DownAndReturnThis(URL: String): String; { Déclarations privées } Public { Déclarations publiques } End; Var Form6: TForm6; Implementation {$R *.dfm} Procedure TForm6.Button1Click(Sender: TObject); Begin memo1.Lines.Text := DownAndReturnThis( 'http://www.developpez.net/forums/d990378/environnements-developpement/delphi/web-reseau/code-source-page-web/'); End; Function TForm6.DownAndReturnThis(URL: String): String; Const Agent = 'Check for update'; Var hFile, HInet: HINTERNET; Buffer: Array[0..32767] Of Char; BufRead: Cardinal; BufSize: Cardinal; Begin // on met le résultat vide si il y a une erreur Result := ''; HInet := InternetOpen(PChar(Agent), INTERNET_OPEN_TYPE_PRECONFIG, NIL, NIL, 0); If Assigned(HInet) Then Try //on essaye d'ouvrir l'adresse du fichier hFile := InternetOpenUrl(HInet, PChar(URL), NIL, 0, INTERNET_FLAG_RELOAD + INTERNET_FLAG_NO_CACHE_WRITE + INTERNET_FLAG_EXISTING_CONNECT + INTERNET_FLAG_NO_COOKIES, 0); //si on a réussi à l'ouvrir If Assigned(hFile) Then Try //on essaie de récupérer les données du fichier BufSize := SizeOf(Buffer); With TStringStream.Create('') Do Try While InternetReadFile(hFile, @Buffer, BufSize, BufRead) And (BufRead > 0) Do Write(Buffer, BufRead); //le résultat est le fichier téléchargé Result := DataString; Finally Free; //on libère l'élément qui a permet de stocker le téléchargement de fichiers End; Finally InternetCloseHandle(hFile); End; Finally InternetCloseHandle(hinet); End; End; End.
merci beaucoup pour votre aide.
Vraiment top ce forum
J'utilise delphi 2005 personnal (j'avais omis cette précision)
Y aurait-il une librairie à se procurer, pour faire marcher ces solutions ?
HINTERNET est un type de variable que mon compilo ne reconnait pas
Si, il reconnanit, si je mets la directive wininet dans les uses
Donc![]()
Salut
Je te conseilles les composants Indy 10.
http://delphipage.free.fr/indyd2005.html
Ils sont simples a utiliser et permettent plein de trucs. Tu peux te servir de IdHTTP pour obtenir le code source de ta page web ...
Bonne chance
Articles :
Création d'un système de chat en Pascal
Programmes :
Défi Pascal 2011 - Mon Tetris
Défi Pascal 2010 - Mon système de chat
Défi Delphi 2009 - Mon Sudoku Solver
Retrouvez mes différents projets sur ma page personnelle.
Partager