IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

recuperer source d'un WebBrowser


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 34
    Points
    34
    Par défaut recuperer source d'un WebBrowser
    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

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    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 !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    merci c'est exactement ce que je veux faire sauf qu'en fmx WebBrowser1 n'a pas OleObject

  4. #4
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 086
    Points : 5 607
    Points
    5 607
    Par défaut
    Citation Envoyé par papyvore Voir le message
    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
    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;

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Ca irait pour des pages statiques mais si AJAX passe par là...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par sergio_is_back Voir le message
    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;
    merci c'est ok .ça je l'avais avec
    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;
    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.

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/09/2007, 17h03
  2. Recuperer source d'une Iframe
    Par Guillomme dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/09/2007, 15h42
  3. récupérer source formulaire exécutable
    Par michel18 dans le forum IHM
    Réponses: 1
    Dernier message: 15/12/2006, 21h01
  4. recuperer source
    Par berty2000 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/03/2006, 20h26
  5. [Tableaux] Récupérer source html
    Par philippef dans le forum Langage
    Réponses: 16
    Dernier message: 10/10/2005, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo