Bonjour,
J'essai d'extraire des liens d'une page web. J'avais 2 possibilités qui s'offraient à moi:
*considérer la page web comme un arbre et en extraire les liens
*lire ma page ligne par ligne et utiliser des regexs pour extraire des liens
Je viens du perl et j'ai exceptionnellement besoin de performance. J'ai lu, à juste titre, que charger ma page comme un arbre occuperai plus de place en mémoire que de lire le fichier ligne à ligne. (Et cela serai sans-doute plus long de charger la page puis d'analyser les noeuds). J'ai donc choisi de lire ma page ligne par ligne, et d'utiliser des regexs pour en extraire des liens
J'aimerai faire l'équivalent d'un
@matches = m#(http://www.*\.com)#g
qui me stockera donc mes liens dans un tableau. Pour télécharger ma page, j'utilise libcurl avec en particulier cette exemple :
http://curl.haxx.se/lxr/source/docs/examples/getinmemory.c
Je modifierai le code pour le wrapper en C++.
Je ne comprends pas très bien ce qu'est la structure chunk.memory, même si j'arrive à l'afficher comme une string à l'aide de std::cout << chunk.memory;
Je me demandais donc comment faire pour :
1) lire cette structure (qui ressemble fortement à un string) ligne à ligne
2) comment stocker plusieurs urls dans un vector de string comme je l'aurai simplement fait en perl
Merci pour votre attention.
Partager