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

Android Discussion :

extraire donnée page web


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Par défaut extraire donnée page web
    bonjours, cela fait plusieurs jour que je cherche un exemple pour extraire des information du page web sans grand résulta si quelqu'un pouvait me donnée le debut d'une piste.

    merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 164
    Par défaut
    Tu peux commencer à télécharger la page en utilisant URLConnection (n'oublie pas les timeout) exemple :

    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
    URLConnection cn = new URL(URL_DATA).openConnection();
    cn.setConnectTimeout(15000);
    cn.setReadTimeout(15000);
    cn.connect();
     
    InputStream stream = cn.getInputStream();
     
    byte buf[] = new byte[16384];
    StringBuffer out = new StringBuffer();
    int numread;
    do {
     
        // Télécharge
        numread = stream.read(buf);
     
        // Ecrit dans le buffer
        if (numread > 0) out.append(new String(buf, 0, numread));
     
        // Calcul de l'avancement
        // On compte 20% au début pour la connexion et 10% pour le traitement final
        publishProgress((int)((float)out.length() / (float)length * 70.0f) + 20);
     
    } while (numread > 0);
     
    stream.close();
    return out.toString();
    En ensuite il faut extraire les infos qui t'intéressent par exemple avec des expressions régulières mais tout dépend de la page en question.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Par défaut
    j'ai vue sur plusieurs site des référence a xpath, st il possible de l'utiliser sur des page html?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 164
    Par défaut
    Sa dépend vraiment comment est faite la page, si c'est une page XML oui mais du HTML classique il y a des balises qui ne sont pas refermés par exemple <img> il n'y a pas de </img>, parfois <img /> qui est conforme au XML mais c'est loin d'être systématique. Et encore là c'est pour un fichier HTML valide !

    Si c'est toi qui est à l'origine du fichier et que tu à la main sur le format alors tu peux utiliser un peu ce que tu veux mais si tu veux parser une page quelconque oublie ...

  5. #5
    Membre averti
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Par défaut
    sa serai pour une page web quelconque quel serai la meilleur solution existe t'il des librairies?

    ps : je n'est pas la main sur la page html

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Me semble bizarre ce code:
    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
     
    byte buf[] = new byte[16384];
    StringBuffer out = new StringBuffer();
    int numread;
    do {
     
        // Télécharge
        numread = stream.read(buf);
     
        // Ecrit dans le buffer
        if (numread > 0) out.append(new String(buf, 0, numread));
     
        // Calcul de l'avancement
        // On compte 20% au début pour la connexion et 10% pour le traitement final
        publishProgress((int)((float)out.length() / (float)length * 70.0f) + 20);
     
    } while (numread > 0);
    D'un coté on lit des bytes... de l'autre on enregistre des chars...
    Avec comme conversion un "new String(buf,0,numread)" qui utilise donc UTF-16 par défaut, ce qui est loin d'être le défaut pour les pages web (ISO-8859-1).
    Il faudrait peut-être lire le charset de la page avant non ?

Discussions similaires

  1. Recuperer données page web
    Par lounix dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 24/02/2012, 16h27
  2. [PHP 5.3] Récupérer données pages web via PHP
    Par je.rochebrochart dans le forum Langage
    Réponses: 1
    Dernier message: 02/10/2011, 11h00
  3. Récuperer données page web
    Par iperkut dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/09/2010, 19h51
  4. [w10]récupérer données page web
    Par minoltis dans le forum WinDev
    Réponses: 2
    Dernier message: 08/02/2007, 13h53
  5. [Système] Extraire des données d'une page web
    Par nazoreen dans le forum Langage
    Réponses: 17
    Dernier message: 22/03/2006, 21h38

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