bonjour
j'affiche une page web dans un webBrowser et je voudrais en récupérer le source dans un memo.
Je sais récupérer à partir d'Url mais pas à partir du webBrowser .
cela en Fmx avec delphi 11
merci
bonjour
j'affiche une page web dans un webBrowser et je voudrais en récupérer le source dans un memo.
Je sais récupérer à partir d'Url mais pas à partir du webBrowser .
cela en Fmx avec delphi 11
merci
Bonjour,
Je ne sais pas si ça répond bien à ta question, mais voici un petit code que j'utilise pour parser une page et en extraire une info :
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 begin // <span class="result">4.4%</span> sResultat := '<span class="result">'; tsl := TStringList.Create; S := WebBrowser1.OleObject.Document.Body.InnerHTML; tsl.Text := S; for i := 0 to tsl.Count-1 do begin S := Trim(tsl[i]); p := Pos(sResultat, S); if p>0 then begin Risque := Copy(S, sResultat.Length+1); p := Pos('%', Risque); if p>0 then begin Risque := Copy(Risque, 1, p); Risque := StringReplace(Risque, '.', ',', [rfReplaceAll]); Ecrire(EcrisRisqueLigne, Risque); Break; end; end; end; end;
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 !
merci c'est exactement ce que je veux faire sauf qu'en fmx WebBrowser1 n'a pas OleObject
Il n'est pas possible récupérer le source la page avec TWebBrowser FMX
Il te faudra te contenter de le faire à la main
L'idéal est d'utiliser le debugger REST dans Outils
Tu entre l'URL de ta page (requête GET) tu fais "envoyer la requête" et ensuite copier les composants
Sur une fiche ou un module ensuite tu colle ces derniers :
Tu vas avoir un Client REST, une requête REST et une réponse REST
Et ensuite tu les utilises comme ceci :
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 type TForm61 = class(TForm) WebBrowser1: TWebBrowser; RESTClient1: TRESTClient; RESTRequest1: TRESTRequest; RESTResponse1: TRESTResponse; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form61: TForm61; implementation {$R *.fmx} procedure TForm61.Button1Click(Sender: TObject); begin RESTClient1.BaseURL:='http://www.google.com'; RESTRequest1.Execute; // si HTTP/200 OK if RESTResponse1.StatusCode=200 then ShowMessage(RESTResponse1.Content); end;
Ca irait pour des pages statiques mais si AJAX passe par là...
merci c'est ok .ça je l'avais avec
le problème est qu'il faut valider un Captcha ,là ça marche plus ,je pensais donc charger dans un webbrowser, valider le Captcha et aprés parser la page.function GetUrlContent(const AURL: string): string;
var
HttpClient: THttpClient;
HttpResponse: IHttpResponse;
begin
HttpClient := THttpClient.Create;
try
HttpResponse := HttpClient.Get(AURL);
Result := HttpResponse.ContentAsString();
finally
HttpClient.Free;
end;
end;
Partager