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

Objective-C Discussion :

[iOS] Récupérer le code source d'une page web


Sujet :

Objective-C

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 16
    Points
    16
    Par défaut [iOS] Récupérer le code source d'une page web
    Bonjour,

    Je me suis mis il y a quelques temps a l'Objective C car je dois pour les cours développer une application pour iphone.
    Pour l'instant elle avance bien mais j'ai un problème, il faut que je récupère le code source d'une page web pour pouvoir ensuite la parser et stocker dans un fichier les parties du code qui m'intéressent.

    Mon seul problème est que je n'arrive pas a récuperer le code source d'une page web ? Je ne vois pas quelles fonctions utiliser ?

    Merci de votre aide

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Probablement pas en passant par un UIWebView...
    Salut,
    Je m'étais posé la même question que toi concernant les récupération des données HTML d'une page web...et a ce que j'ai pu trouvé sur les différents forums que j'ai visité était que la navigation via ne UIWebView ne permettait pas d'accéder au code source...
    J'ai rien vu dans les l'implémentation de la class, ni de l'UIwebView delegate...
    On m'a conseillé de recoder un navigateur!!!!...j'ai laissé tombé!
    Si kkun a des pistes je suis preneur !
    bye

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    J'avais trouvé comme début de piste ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NSURL *url = [[NSURL alloc] initWithString:@"une adresse"];
    NSData *donnees = [[NSData alloc] initWithContentsOfURL:url];
    NSString *page = [[NSString alloc] initWithData:donnees encoding:NSASCIIStringEncoding];
    Mais je n'arrive pas à afficher le résultat dans un label ou autre ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Pour Mac...ça peut eventuellement (pas testé) tourner sur iphone
    J'avais fait ya quelque temps une petite appli qui devait se connecter à n pages internet...parser le contenu et le sauver si ça m'intéressait....
    pour ça j'établissais une connection avec NSURLConnection...etc etc...donc un transfert de données asynchrone
    Voici quelques lignes de ma classe :

    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
    - (void)loadDataFromURLString:(NSString *)theUrlString{
    	NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:theUrlString]
    cachePolicy:NSURLRequestReturnCacheDataElseLoad 
    timeoutInterval:30.0];
     
    	connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    }
     
    - (void)connection:(NSURLConnection *)theConnection 
    	didReceiveData:(NSData *)incrementalData {
        if (data == nil)
            data = [[NSMutableData alloc] initWithCapacity:2048];
    	NSLog(@"receiving data");
        [data appendData:incrementalData];
    }
     
    - (void)connectionDidFinishLoading:(NSURLConnection *)theConnection {
    	//Now we will process transmitted data
    	//là tu traite tes données comme tu veux....
     
    }
    L'avantage de cette approche c'est que ça fige pas ton appli en attendant la fin du transfert....
    Utiliser des requestWithURL asynchrones ou avec initWithURL synchrone comme tu le proposes...n'est pertinent que dans le cas où la page est "statique"....si c'est une page générée à la volé je suis pas certain que ça puisse donner des résultats exploitables!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Ah zut j'ai oublié la fin de ton message...
    T'es sur que ta NSString contient bien le résultat de ton initWithURL ? toujours cette histoire de transfert synchrone/asynchrone!
    Parce que tu devrais juste avoir a faire :

    [tonlabel setText:ta NSString];

    Juste une question : C'est un grand label?!!! afficher le code HTML d'une page ça risque d'être un peu short non ?
    T'as pas essayé une UITextView?

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par aliasc Voir le message
    J'avais trouvé comme début de piste ce code :

    NSURL *url = [[NSURL alloc] initWithString:@"une adresse"];
    NSData *donnees = [[NSData alloc] initWithContentsOfURL:url];
    NSString *page = [[NSString alloc] initWithData:donnees encoding:NSASCIIStringEncoding];


    Mais je n'arrive pas a afficher le resultat dans un label ou autre ?
    RTFM:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    initWithData:encoding: 
     
    Returns nil if the initialization fails for some reason (for example if data does not represent valid data for encoding).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    initWithContentsOfURL:usedEncoding:error:
     
    Returns an NSString object initialized by reading data from a given URL and returns by reference the encoding used to interpret the data.

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci a tous pour votre aide
    Et oui tu as raison un label c'était un peu court alors j'ai juste changer par une zone de teste.

    J'ai réussi, pour ceux que sa intéresse voici le code que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    NSURL *url = [[NSURL alloc] initWithString:@"http://www.votresite.fr/"];
    NSData *donnees = [[NSData alloc] initWithContentsOfURL:url];
    NSString *page = [[NSString alloc] initWithData:donnees encoding:NSASCIIStringEncoding];
     
    [TextViewiPuP setText:page];

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

Discussions similaires

  1. Récupérer le code source d'une page HTML
    Par phyn04 dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 24/11/2016, 14h45
  2. [AJAX] Récupérer le code source d'une page web
    Par soufian1364 dans le forum AJAX
    Réponses: 1
    Dernier message: 11/12/2012, 17h16
  3. Récupérer le code source d'une page web
    Par hassine dans le forum C#
    Réponses: 6
    Dernier message: 08/11/2010, 11h46
  4. Récupérer le code source d'une page distante
    Par audran12 dans le forum Langage
    Réponses: 6
    Dernier message: 23/04/2008, 22h23
  5. 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