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# Discussion :

Voir Code source d'une page web avec URL avec extension .PHP


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    Par défaut Voir Code source d'une page web avec URL avec extension .PHP
    Bonjour,

    Je veux faire une recherche dans le code source d'une page web avec une extension .php dans mon cas c'est ici -> https://web.tmxmoney.com/earnings_cal.php

    Ce n'est pas le code source du fichier .php mais bien le code envoyé pour créer la page web.

    J'ai bien essayé avec ces deux exemples mais ce n'est pas la bonne approche, ça fonctionne pas les extensions .php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    using (WebClient client = new WebClient())
    {
      //string htmlCode = client.DownloadString("http://google.com");                             // Fonctionne parfaitement
      string htmlCode = client.DownloadString("http://web.tmxmoney.com/earnings_cal.php");       // La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de l'envoi.
     textBox1.Text = htmlCode;
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    string URL = "http://web.tmxmoney.com/earnings_cal.php";     // La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de l'envoi.
    string URL = "http://google.com";                           // Fonctionne parfaitement
     
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
     
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     
    StreamReader sr = new StreamReader(response.GetResponseStream());
    textBox1.Text = sr.ReadToEnd();
    sr.Close();

    Je veux voir la même chose que quand on clique sur Affichage -> Source dans IE après avoir chargé la page https://web.tmxmoney.com/earnings_cal.php


    Quelqu'un a-t-il une idée de comment faire ?

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Avec ce vbscript ça marche bien chez moi
    Code vbs : 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
    Option Explicit
    Dim URL,Save2File,fso,Ws
    URL = "https://web.tmxmoney.com/earnings_cal.php"
    Save2File = "HTML_Code_earnings_cal.txt"
    Call Download(URL,Save2File)
    Set Ws = CreateObject("wscript.shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FileExists(Save2File) Then Ws.Run Save2File
    Set fso = Nothing
    Set Ws = Nothing
    Wscript.Quit()
    '***********************************************************************************************
    Sub Download(URL,Save2File)
        Dim File,Line,BS,ws
        On Error Resume Next
        Set File = CreateObject("WinHttp.WinHttpRequest.5.1")
        File.Open "GET",URL, False
        File.Send()
        If err.number <> 0 then
            Line  = Line &  vbcrlf & "Error Getting File"
            Line  = Line &  vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " &  vbcrlf &_
            err.description
            Line  = Line &  vbcrlf & "Source " & err.source 
            MsgBox Line,vbCritical,"Error getting file"
            Err.clear
            wscript.quit
        End If
        If File.Status = 200 Then ' File exists and it is ready to be downloaded
            Set BS = CreateObject("ADODB.Stream")
            Set ws = CreateObject("wscript.Shell")
            BS.type = 1
            BS.open
            BS.Write File.ResponseBody
            BS.SaveToFile Save2File, 2
        ElseIf File.Status = 404 Then
            MsgBox "File Not found : " & File.Status,vbCritical,"Error File Not Found"
        Else
            MsgBox "Unknown Error : " & File.Status,vbCritical,"Error getting file"
        End If
    End Sub
    '***********************************************************************************************

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    Par défaut
    Pas mal du tout hackoofr mais je ne suis un expert avec les scripts VBS et je voulais le faire en C# mais je peux appeler ce script à partir de C# je pense et ensuite examiner le fichier .txt.

    Maintenant comme tu semble très bon avec les scripts .vbs serait-ce possible de le modifier non pas pour afficher le code source mais pour rechercher une chaine dans le code source et si on trouve la chaine on affiche un boite dialogue. Je mettrais ce script dans mon répertoire de démarrage pour une exécution automatique au démarrage.

    Merci c'est déjà super.

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    C'est quoi la chaîne à rechercher dans le code HTML ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    Par défaut
    Bon il y aurait plusieurs chaines qui correspondent au titres listés sur la page des relevés trimestriels des actions en bourse, pour fin d'exemple disons
    Hydropothecary et Canopy

    Je trouve ça bizarre que le fichier txt soit affiché automatiquement je ne vois rien dans le code qui fait ça. Idéalement il ne devrait afficher que la boite de dialogue disant que la(les) chaine(s) sont trouvés


    Merci, bye.

  6. #6
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par PiPo123 Voir le message
    Je trouve ça bizarre que le fichier txt soit affiché automatiquement je ne vois rien dans le code qui fait ça.
    Code vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    If fso.FileExists(Save2File) Then Ws.Run Save2File

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par PiPo123 Voir le message
    J'ai bien essayé avec ces deux exemples mais ce n'est pas la bonne approche, ça fonctionne pas les extensions .php
    Ton code ci-apres fonctionne correctement, ca ne fait pas de discrimination selon le type de fichier...
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    string URL = "http://web.tmxmoney.com/earnings_cal.php";     // La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de l'envoi.
    string URL = "http://google.com";                           // Fonctionne parfaitement
     
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
     
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     
    StreamReader sr = new StreamReader(response.GetResponseStream());
    textBox1.Text = sr.ReadToEnd();
    sr.Close();

    A noter, l'URL de ton fichier PHP utilise en fait HTTPS, et non HTTP... Donc si tu declares le type de certificat ca peut peut-etre resoudre ton souci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072; //768 for TLS 1.1 and 3072 for TLS 1.2
    System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

    Tu peux aussi tenter de rajouter cette ligne juste avant de declarer ton objet response:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

    Si ca ne change rien alors peut-etre que tu tombes dans le scenario decrit par EricLaw ici (voir premiere reponse): The underlying connection was closed: - WebClient error
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    Par défaut
    Excellent

    J'ai ajouté le code suggéré et ça fonctionne parfaitement maintenant.


    Merci DotNetMatt



    Mais ou est passé le bouton Résolu ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/09/2015, 14h32
  2. recupérer le code source d'une page web avec httpclient
    Par fraisa1985 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/07/2008, 10h40
  3. comment charger le code source d'une page web avec dotnet ?
    Par gizgoz dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 14/05/2007, 20h51
  4. Récupérer le code source d'une page web
    Par glRaZ dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/12/2004, 09h16

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