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

VB.NET Discussion :

Récuperer des valeurs sur un site web


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Je sais pas
    Inscrit en
    Août 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Je sais pas
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 23
    Par défaut Récuperer des valeurs sur un site web
    Bonjour

    Je cherche comment récupérer des valeurs sur le site : http://whatismyipaddress.com/

    Je voudrais obtenir 'ip et le pays mais je n'y arrive pas car il n'y a pas d'id et je n'arrive pas avec un getElementByTagName .

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour skylle,

    Il faut tout simplement utiliser la classe webrequest en étudiant préalablement les requêtes grâce au très réputé outil nommé fiddler.

    ou alors tu peux utiliser ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim wc As New WebClient
     Msgbox(wc.DownloadString("http://anti.x10.mx/api/getip.php")))


    a+

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Utilise l'API :

    http://whatismyipaddress.com/api

    (enfin API c'est un bien grand mot, c'est juste une URL qui retourne ton IP en texte brut...)

  4. #4
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Bonjour,

    Pour l'ip j'ai pris dans l'input qui l'affiche, et pour le pays j'ai bouclé le tableau jusqu'au <th>Country:</th> et une fois là on sait que le prochain élément est le nom du pays

    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
      Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
     
            If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then 'la page crache plusieurs DocumentCompleted pour chaque frame chargé, on teste que la page entiére soit chargée
                MsgBox(getIp() & " " & getCountry())
            End If
     
     
        End Sub
     
     
        ''' <summary>
        ''' Récupére l'IP de l'element INPUT sur la page
        ''' </summary>
        ''' <returns>l'ip as string</returns>
        Private Function getIp() As String
     
            For Each elem As HtmlElement In WebBrowser1.Document.GetElementsByTagName("input")
     
                If elem.Name = "LOOKUPADDRESS" Then
     
                    Return elem.GetAttribute("value") 'On retourne la value présente dans l'input
     
                End If
            Next
     
            Return Nothing
        End Function
     
     
        ''' <summary>
        ''' Récupére le pays dans la page
        ''' </summary>
        ''' <returns>le pays as string</returns>
        Private Function getCountry() As String
            Dim trouve As Boolean = False
            Dim TABLES As HtmlElementCollection = Me.WebBrowser1.Document.GetElementsByTagName("table")
     
     
     
            For Each TBL As HtmlElement In TABLES 'On fouille les tableau de la page
                For Each tbb As HtmlElement In TBL.All 'Pour chaque tableau on fouille son contenu
     
     
                    'si l'element <th>Country:</th> est trouvé alors au tour de boucle suivant on tombe sur l'élément <td>France</td> et on test cela par un boolean "trouve"
                    If trouve Then
                        trouve = False
                        Return tbb.InnerText
                    End If
     
                    If tbb.InnerText = "Country:" Then 'Si on passe ce texte, c'est que le prochain element sera le pays, donc on passe le boolean à true pour dire qu'on l'a trouvé
                        trouve = True
                    End If
                Next
            Next
     
            Return Nothing
        End Function

    EDIT: Vu le post de Tomlev trop tard, je me suis embêté pour rien ...

  5. #5
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Tu peux utilisé XSLT

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par charouel Voir le message
    Tu peux utilisé XSLT
    Je ne vois vraiment pas en quoi ça va résoudre le problème
    - déjà XSLT c'est pour du XML, pas pour du HTML ; et en dehors du cas particulier de XHTML, un document HTML n'est pas un document XML valide, donc XSLT n'est pas utilisable
    - de plus le problème est qu'il n'y a pas de façon d'identifier clairement le texte à extraire (pas d'id ni de class ni quoi que ce soit d'exploitable), donc XSLT n'y changera rien

  7. #7
    Membre actif
    Homme Profil pro
    Je sais pas
    Inscrit en
    Août 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Je sais pas
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 23
    Par défaut
    @Ez3kiel J'ai essayé ton code il ne fonctionne pas :S

    Puis pour l'api je voudrais l'ip mais aussi le pays, la ville et le FAI donc ça ne marche pas.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Skylle Voir le message
    @Ez3kiel J'ai essayé ton code il ne fonctionne pas :S

    Puis pour l'api je voudrais l'ip mais aussi le pays, la ville et le FAI donc ça ne marche pas.
    Dans ce cas regarde ça :
    http://freegeoip.net/json/

    Remplace json par xml ou csv, selon le format que tu préfères obtenir

    Pour la ville, ne t'attends pas à ce que ce soit très précis... moi il m'indique Suresnes, alors que je suis dans le nord de Paris.

  9. #9
    Membre actif
    Homme Profil pro
    Je sais pas
    Inscrit en
    Août 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Je sais pas
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 23
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Dans ce cas regarde ça :
    http://freegeoip.net/json/

    Remplace json par xml ou csv, selon le format que tu préfères obtenir

    Pour la ville, ne t'attends pas à ce que ce soit très précis... moi il m'indique Suresnes, alors que je suis dans le nord de Paris.
    Est ce que tu peux détailler un peu plus stp car je comprend pas trop de quoi tu parle , format et quel code je doit faire pour obtenir ces infos

  10. #10
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Citation Envoyé par Skylle Voir le message
    @Ez3kiel J'ai essayé ton code il ne fonctionne pas :S
    Ha ... Chez moi avec un WebBrowser (WebBrowser1) qui charge http://whatismyipaddress.com/ le code fonctionne, je récupère le pays et l'ip.

    Mais sinon ne t'embête pas, ma solution fonctionne mais uniquement dans la mesure où la structure de leur page ne changera pas. Je pense que la solution de Tomlev est plus évolutive et plus "propre". (De plus http://whatismyipaddress.com/ ne te retourne pas la ville comme tu le souhaites)

Discussions similaires

  1. automate pour récupérer des données sur un site web
    Par castor75 dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2008, 19h59
  2. [Upload] Uploader des vidéos sur son site web
    Par Tavarez59 dans le forum Langage
    Réponses: 4
    Dernier message: 09/04/2007, 16h44
  3. Récupérer des informations sur un site web
    Par JnewB dans le forum Langage
    Réponses: 11
    Dernier message: 08/04/2007, 19h44
  4. Réponses: 13
    Dernier message: 30/11/2006, 21h19
  5. Donner des suggestions sur le site Web en général
    Par kissmytoe dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 20/03/2006, 16h35

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