[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
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
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:
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! ;)