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

C++Builder Discussion :

R�cup�rer le Code d'une page HTML


Sujet :

C++Builder

  1. #1
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut R�cup�rer le Code d'une page HTML
    Bonjour � tous

    J'essaye de r�cup�rer le code source d'une page HTML dans un programme pour l'analyser et j'ai une erreur syst�matiquement

    J'ai suivit plusieurs post sur ce forum mais sans r�sultats

    j'ai ceci comme erreur
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Exception 'first chance' à $7563C41F. Classe d'exception EIdHTTPProtocolException avec un message 'HTTP/1.1 302 Found'. Processus .....
    il semble qu'il manque quelque chose mais je ne sais pas quoi

    j'utilise le composant TidHTTP
    Voici mon code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    TMemoryStream *Stream = new TMemoryStream();
    IdHTTP->Get(EditURL->Text, Stream);
     
    TStringList *Liste = new TStringList();
    Liste->LoadFromStream(Stream);
    L'erreur est sur la ligne Get

    Merci d'avance pour votre aide

  2. #2
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    123
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 123
    Par d�faut
    Je fais plut�t comme �a pour r�cup�rer une page :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    TStringStream* pStringStream = new TStringStream();
    TIdHTTP* mpIdHTTP = new TIdHTTP(NULL);
    mpIdHTTP->ReadTimeout = 2000;
    try
        {
        mpIdHTTP->Get(url, pStringStream);
        }
    catch(Exception &e)
        {
        ...
        }
    ShowMessage(pStringStream->DataString);
    ...

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte de syst�me d'information
    Inscrit en
    D�cembre 2012
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : S�n�gal

    Informations professionnelles :
    Activit� : Architecte de syst�me d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 1
    Par d�faut
    Citation Envoy� par kurul1 Voir le message
    Bonjour � tous

    J'essaye de r�cup�rer le code source d'une page HTML dans un programme pour l'analyser et j'ai une erreur syst�matiquement

    J'ai suivit plusieurs post sur ce forum mais sans r�sultats

    j'ai ceci comme erreur
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Exception 'first chance' à $7563C41F. Classe d'exception EIdHTTPProtocolException avec un message 'HTTP/1.1 302 Found'. Processus .....
    il semble qu'il manque quelque chose mais je ne sais pas quoi

    j'utilise le composant TidHTTP
    Voici mon code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    TMemoryStream *Stream = new TMemoryStream();
    IdHTTP->Get(EditURL->Text, Stream);
     
    TStringList *Liste = new TStringList();
    Liste->LoadFromStream(Stream);
    L'erreur est sur la ligne Get

    Merci d'avance pour votre aide
    Soit plus explicite

  4. #4
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Tout d'abord merci � vous deux pour vos r�ponses

    Citation Envoy� par PocoYote Voir le message
    Je fais plut�t comme �a pour r�cup�rer une page :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    TStringStream* pStringStream = new TStringStream();
    TIdHTTP* mpIdHTTP = new TIdHTTP(NULL);
    mpIdHTTP->ReadTimeout = 2000;
    try
        {
        mpIdHTTP->Get(url, pStringStream);
        }
    catch(Exception &e)
        {
        ...
        }
    ShowMessage(pStringStream->DataString);
    ...
    J'ai toujours la m�me erreur en utilisant ta m�thode PocoYote

    Citation Envoy� par papemignane Voir le message
    Soit plus explicite
    En quoi voudrais-tu que je soit plus explicite papemignane. Je voudrais r�cup�rer le code HTML d'une page dont je connais l'URL pour analyse son code

  5. #5
    Membre tr�s actif Avatar de Argol_Medusa
    Homme Profil pro
    Ing�nieur Radiofr�quences
    Inscrit en
    Ao�t 2005
    Messages
    208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur Radiofr�quences
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 208
    Par d�faut
    Citation Envoy� par kurul1 Voir le message
    Bonjour � tous

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    TMemoryStream *Stream;
    Stream = new TMemoryStream();
    IdHTTP->Get(EditURL->Text, Stream);
    J'utilise exactement la m�me m�thode, �a fonctionne.

    Est-ce que tu n'as pas un firewall qui bloque ou quelque chose comme �a plut�t?

    Par exp�rience c'est toujours un probl�me de blocage de port dans 80% des cas

    ( Par contre oublie pas de delete tes objets )

  6. #6
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    J'y ai pens� justement et j'ai essay� en d�sactivant le parefeu mais c'est pareil

    Pour pr�ciser un peut mon erreur, j'ai une boite de dialogue avec marqu� HTTP/1.1.302 Fond qui s'affiche

  7. #7
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    123
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 123
    Par d�faut
    http://en.wikipedia.org/wiki/HTTP_302

    A priori il te propose une redirection.

  8. #8
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Ok merci pour ta r�ponse mais je ne sais pas comment faire pour passer outre, car moi la redirection ne m'int�resse pas, ce que je veux c'est le code de la page en cours

  9. #9
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Salut, pour les redirection il suffit d'ajouter ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    IdHTTP->HandleRedirects = true;
    Si tu veux plus d�exemple avec TIdHTTP, va faire un tour sur mon blogue. Je me suis pas mal amus� avec �a r�cemment: http://www.optimatek.com/category/cppbuilder/

  10. #10
    Membre tr�s actif Avatar de Argol_Medusa
    Homme Profil pro
    Ing�nieur Radiofr�quences
    Inscrit en
    Ao�t 2005
    Messages
    208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur Radiofr�quences
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 208
    Par d�faut
    C'est quoi ton url ?
    As-tu essay� avec une autre adresse toute simple ( http://www.chemin/nom_du_fichier_complet.Bin ) histoire de voir si c'est li� � l'objet en lui-m�me que tu essayes de charger ou si c'est un autre probl�me ( utilises-tu proxy ? )

  11. #11
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Merci � vous deux

    Crayon
    J'ai vu cette propri�t� et je l'ai mise � true comme tu me le conseil et je n'ai plus d'erreur. par contre j'obtiens un document vide.

    Argol_Medusa j'ai essay� avec une autre adresse et cela fonctionne avec la propri�t� que Crayon m'a conseill� � true

    Apr�s quelques recherche, en fait m'a page est un script cgi d'o� la page vide.
    J'ai trouv� ceci

    http://www.delphipages.com/forum/sho....php?t=187814/

    Mais je n'ai pas trouv� le composant dans C++ builder XE3

    j'ai essay� d'importer les composant HTML Object Library de Microsoft mais j'ai une erreur � la complilation

    [bcc32 Erreur] MSHTML_OCX.cpp(45554): E2491 Compte VIRDEF maximal d�pass� ; v�rifiez la r�cursivit�)

    et je ne sais pas de quoi cela viens

  12. #12
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Salut, comme Argol_Medusa l'a mentionn�, avoir le lien pour la page web o� l'information doit �tre r�cup�r� pourrait nous aider.

    Sinon, est-ce que tu as essayer d'utiliser les composants ICS?

  13. #13
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    C'est le r�sultat de ce formulaire qu'un coll�gue voudrais que je lui r�cup�re, ce sont les r�sultats du marathon de new-york

    http://web2.nyrrc.org/cgi-bin/start....ve_search.html

    Sinon je vais essay� ICS merci Crayon

  14. #14
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Salut kurul1, le site web que tu as �cris fonctionne par requ�te POST et non par GET. Voir http://fr.wikipedia.org/wiki/HTTP#M.C3.A9thodes

    Donc, il ne faut pas faire:
    Mais plut�t:
    Voici la liste des param�tres POST � envoyer avec certaines valeurs:
    • AESTIVACVNLIST input.searchyear,input.top,input.agegroup,input.f.hh,input.f.mm,input.t.hh,input.t.mm,team_code,input.state,input.country,input.top.wc
    • input.agegroup
    • input.bib
    • input.country
    • input.f.age
    • input.f.hh
    • input.f.mm
    • input.hist.fname
    • input.hist.lname
    • input.lname
    • input.searchyear 2011
    • input.state
    • input.t.age
    • input.t.hh
    • input.t.mm
    • input.top 10
    • input.top.wc 10
    • search.method search.flat
    • team_code
    • top.wc.type P

  15. #15
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Merci � toi Crayon

    J'ai donc fait ceci mais cela ne fonctionne toujours pas, j'obtient en retour le code de la page d'accueil du site

    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
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    	TIdMultiPartFormDataStream *Param = new TIdMultiPartFormDataStream();
    	String Reponse;
     
    	// On construit les paramètres
    	Param->AddFormField("search.method", "search.agegroup", "", "RADIO", "");				// search_method par age
    	Param->AddFormField("input.hist.fname", "", "", "TEXT", "");								// input.hist.fname par défaut vide
    	Param->AddFormField("input.hist.lname", "", "", "TEXT", "");								// input.hist.lname par défaut vide
    	Param->AddFormField("top.type", "", "", "RADIO", "");										// top.type par défaut rien n'est sélectionné
    	Param->AddFormField("input.f.age", "", "", "TEXT", "");										// input.f.age par défaut vide
    	Param->AddFormField("input.t.age", "", "", "TEXT", "");										// input.t.age par défaut vide
    	Param->AddFormField("input.lname", "", "", "TEXT", "");										// input.lname par défaut vide
    	Param->AddFormField("input.bib", "", "", "TEXT", "");										// input.bib" par défaut vide
    	Param->AddFormField("top.wc.type", "P", "", "RADIO", "");										// top.wc.type par défaut vide
    	Param->AddFormField("top.wc.gender", "", "", "RADIO", "");									// top.wc.gender par défaut rien n'est sélectionné
     
    	// on va construire la chaine AESTIVACVNLIST
    	String AESTIVACVNLIST = "2011,10,Male 40 to 44,,,,,,,,";
     
    	// on ajoute le paramètre
    	Param->AddFormField("AESTIVACVNLIST", AESTIVACVNLIST, "", "HIDDEN", "");
     
    	// On se met en Mode multipart/form-data
    	IdHTTP->Request->ContentType = "multipart/form-data";
     
    	Reponse = IdHTTP->Post(EditURL->Text, Param);
     
    	Memo1->Lines->Add(Reponse);
    }

  16. #16
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Petite erreur sur la ligne de AESTIVACVNLIST j'avais oubli� que le dernier param�tre avait une valeur par d�faut

    Apr�s correction
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    	String AESTIVACVNLIST = "2011,10,Male 40 to 44,,,,,,,,10";
    Mais toujours pareil, j'obtiens la page d'accueil du site

    J'ai aussi essay� ces deux autres fa�on mais cela ne change rien

    1�re en ajoutant des guillemets
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    	String AESTIVACVNLIST = "\"2011\",\"10\",\"Male 40 to 44\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"10\"";
    2�me en ajoutant un �l�ment par param�tres
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	Param->AddFormField("AESTIVACVNLIST", "2011"); 			// input.searchyear défaut 2011
    	Param->AddFormField("AESTIVACVNLIST", "10");				// input.top défaut 10
    	Param->AddFormField("AESTIVACVNLIST", "Male 40 to 44");		// input.agegroup
    	Param->AddFormField("AESTIVACVNLIST", "");					// input.f.hh défaut à vide
    	Param->AddFormField("AESTIVACVNLIST", "");					// input.f.mm défaut à vide
    	Param->AddFormField("AESTIVACVNLIST", "");					// input.t.hh défaut à vide
    	Param->AddFormField("AESTIVACVNLIST", "");                  // input.T.mm défaut à vide
    	Param->AddFormField("AESTIVACVNLIST", "");                  // team_code défaut à vide
    	Param->AddFormField("AESTIVACVNLIST", "");                  // input.state défaut à vide
    	Param->AddFormField("AESTIVACVNLIST", "");                  // input.country défaut à vide
    	Param->AddFormField("AESTIVACVNLIST", "10");					// input.top.wc défaut à 10

  17. #17
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Salut, j'ai vu que le site web utilise les cookies suivants: aestiva.cookieid, aestiva.cookiesid et BIGipServerweb2.nyrrc.org. Donc il te faudrait peut-�tre utiliser un contr�le TIdCookieManager.

    Sa va pas �tre facile, mais je suis certain que c'est faisable.

Discussions similaires

  1. R�cup�rer le code d'une page html contenue dans un balise object sous I
    Par olivier21c dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 10/05/2008, 16h48
  2. R�cup�rer des info dans une page html
    Par DORBRITZ dans le forum VB 6 et ant�rieur
    R�ponses: 9
    Dernier message: 06/03/2008, 11h13
  3. v�rifier du code dans une page html
    Par robert_trudel dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 16/06/2006, 01h17
  4. R�cup�rer des donn�es sur une page HTML
    Par rupeni dans le forum VB 6 et ant�rieur
    R�ponses: 11
    Dernier message: 18/11/2005, 17h22
  5. R�cup�rer des donn�es dans une page HTML
    Par newdelirium dans le forum Langage
    R�ponses: 3
    Dernier message: 26/10/2005, 19h18

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