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

Visual C++ Discussion :

Extraire une valeur d'une page web


Sujet :

Visual C++

  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Par d�faut Extraire une valeur d'une page web
    Bonjour,

    Je souhaite r�aliser un programme en qui extrait une valeur d'une page web.

    Ceci pour enregistrer les cours de la bourse sur la page de yahoo par exemple.

    Existe-t-il une fonction en C++ pour rentrer automatiquement une valeur dans le champ code valeur de la page web et en r�cup�rer le cours ?

    Merci.

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    il te faut manipuler des objets httpqqchose
    ca d�pend ce que tu utilises, MFC ? .Net ?

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Par d�faut
    Bonjour,

    J'utilise en fait Visual C++ 2005.

    Je ne sais pas si MFC ou .Net sont install�s.

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    .net, c'est sur que ca y est
    MFC, ca d�pend si c'est la version express ou pas.

    Dans tous les cas, il faut ouvrir une connexion http et lire le contenu de la page

    en C++/CLI, il faut faire un truc du genre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    		HttpWebRequest ^ HttpWReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create(url));
    		HttpWReq->CachePolicy = gcnew Cache::HttpRequestCachePolicy(Cache::HttpRequestCacheLevel::Reload);
    		HttpWResp = dynamic_cast<HttpWebResponse^>(HttpWReq->GetResponse());
    		sr = gcnew StreamReader(HttpWResp->GetResponseStream());
    		Xml::XmlDocument ^ xml = gcnew Xml::XmlDocument();
    		xml->LoadXml(sr->ReadToEnd());

  5. #5
    Membre habitu�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Par d�faut
    Bonjour,

    En effet ces commandes ne me sont pas famili�res.

    As tu un livre ou bien un site web � me conseiller pour se genre de fonction.

    Merci.

  6. #6
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    le site de developpez.com regorge de tutoriaux en tous genre.

    Il te faut d�j� te familiariser avec le C++
    Ensuite choisir entre MFC et .NET (mfc est payant et n'est pas dispo dans la version gratuite de visual c++)
    Et voir les tutoriaux MFC ou C++/CLI

  7. #7
    Membre habitu�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Par d�faut
    Bonjour,

    J'ai trouv� cette source sur le net :
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    private bool DoResquest(string URL, out string newURL)
    {
    	//Défini l'URL de destination de la redirection à vide. Car elle n'est définie que si il y a redirection.
    	newURL = "";
    	try
    	{
    		// Créer la requête HTTP.
    		HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URL);
    		// Défini les champs de méthode, de type de navigateur, de types acceptés.
    		req.Method = method.Text;
    		req.UserAgent = useragent.Text;
    		req.Accept = accept.Text;
    		// Supprime le suivi de la redirection automatique.
    		req.AllowAutoRedirect = false;
    		// Défini les cookies, et si nécessaire, ajout le cookie utilisateur.
    		req.CookieContainer = cookies;
    		if (cookie.Text != "")
    		{
    			int signpos = cookie.Text.IndexOf("=");
    			string cookiename = cookie.Text.Substring(0, signpos);
    			string cookieval = cookie.Text.Substring(signpos + 1);
    			req.CookieContainer.Add(new Cookie(cookiename, cookieval, "/", req.RequestUri.Host));
    		}
    		// Si la method est POST, alors il faut mettre les données dans le corps de la requête.
    		if (method.Text == "POST")
    		{
    			string data = postdata.Text;
    			// Définition des informations concernant le corps
    			req.ContentLength = data.Length;
    			req.ContentType = contenttype.Text;
    			// Ecriture des données.
    			Stream reqout = req.EndGetRequestStream(req.BeginGetRequestStream(new AsyncCallback(AsyncRequestWriter), null));
    			StreamWriter wri = new StreamWriter(reqout, Encoding.GetEncoding(850));
    			wri.Write(data);
    			wri.Close();
    			reqout.Close();
    		}
    		// Exécution de la requête.
    		HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    		// Ajout des nouveaux cookies si présents.
    		cookies.Add(res.Cookies);
    		// Afficher les premières informations de la requête (Method, URL, Etat de réponse et en-têtes.
    		result.Text += "---------------------------------------------------\r\n";
    		result.Text += req.Method + " " + URL + "\r\n";
    		result.Text += res.StatusCode + " - " + res.StatusDescription + "\r\n";
    		result.Text += res.Headers.ToString() + "\r\n";
    		// Suivant l'état. Redirection ou non.
    		switch (res.StatusCode)
    		{
    			// Redirection normale.
    			case HttpStatusCode.Redirect:
    				method.SelectedIndex = 0;
    				newURL = res.Headers.Get("Location");
    				break;
    			// Redirection gardant la methode.
    			case HttpStatusCode.RedirectKeepVerb:
    				newURL = res.Headers.Get("Location");
    				break;
    			// Redirection mettant la méthode à GET.
    			case HttpStatusCode.RedirectMethod:
    				method.SelectedIndex = 0;
    				newURL = res.Headers.Get("Location");
    				break;
    			// Tout les autres état, nottament, OK
    			default:
    				// Affiche les données du flux
    				Stream resin = res.GetResponseStream();
    				StreamReader rea = new StreamReader(resin, Encoding.GetEncoding(850));
    				result.Text += rea.ReadToEnd().Replace("\r\n", "\n").Replace("\n", "\r\n");
    				rea.Close();
    				resin.Close();
    				break;
    		}
    		// Ferme la réponse
    		res.Close();
    		// Ferme la requête
    		req.Close();
    	}
    	catch (Exception ex)
    	{
    		// Affiche l'exception dans la zone de résultat.
    		result.Text += ex.ToString();
    	}
    	// Il y a redirection seulement si une adresse a été mise dans newURL.
    	return newURL.Length != 0;
    }
    Mais je n'arrive pas � la faire fonctionner.

    Dans un premier temps j'aimerais simplement �crire un code pour rentrer la valeur (par exemple Bouygues) et valider pour afficher le cours de l'action sans r�cup�rer le contenu.

    Merci.

  8. #8
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    ca ressemble � du C# ...

    tu as essay� mon exemple ?

  9. #9
    Membre habitu�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Par d�faut
    Bonjour,

    Oui j'ai essay� ton exemple mais je n'arrive pas � le faire fonctionner.

    Je ne sais pas quelles librairies d�clarer.

    De plus je ne sais pas o� rentrer la valeur cherch�e (par exemple Bouygues).

    Voici le code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <iostream>
     
     
    void main()
    {
    HttpWebRequest ^ HttpWReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create(www.yahoo.fr));
    		HttpWReq->CachePolicy = gcnew Cache::HttpRequestCachePolicy(Cache::HttpRequestCacheLevel::Reload);
    		HttpWResp = dynamic_cast<HttpWebResponse^>(HttpWReq->GetResponse());
    		sr = gcnew StreamReader(HttpWResp->GetResponseStream());
    		Xml::XmlDocument ^ xml = gcnew Xml::XmlDocument();
    		xml->LoadXml(sr->ReadToEnd());
    }
    Merci.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Extraire le contenu d'une boite "dialogue de page web"
    Par Oliv- dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 04/02/2013, 10h41
  3. R�ponses: 1
    Dernier message: 11/03/2010, 14h47
  4. Recuperer les valeur d'une listbox sur un page web
    Par will97 dans le forum R�seau/Web
    R�ponses: 2
    Dernier message: 02/03/2009, 04h39
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    R�ponses: 8
    Dernier message: 21/06/2007, 13h48

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