Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/06/2013, à 14:34

compte supprimé

[C++] Télécharger et parser une page HTML

Hello,

J'ai appris le C++ il y a quelques années maintenant, mais je pratique très rarement et j'aimerais me mettre à de petits projets utiles (pour moi-même et pourquoi pas pour d'autres), histoire de pratiquer et de m'amuser un peu.

Je cherche donc à coder un programme qui pourrait télécharger et parser les différentes pages d'un forum (on va prendre celui-ci pour exemple, et parce que c'est un de ceux que je fréquente le plus cool ).

Pour l'instant je veux juste coder la partie téléchargement et analyse de la page, je verrai ensuite à quels sites je peux l'appliquer et quelles fonctions je peux en tirer.

Pour commencer, et en prenant ce forum comme exemple, je vise à extraire des infos de trois types de pages :

  • l'index : enregistrer la liste des forums, avec leurs titres, descriptions et URLs

  • pour chaque forum, sa liste des sujets, toujours avec titre + URL, mais aussi accessoirement nombre de réponses et dates de création/dernier post

  • pour un sujet au hasard ( tongue ), la liste des messages avec auteur, date et contenu (ce qui risque peut-être d'être le plus dur vu qu'il y a souvent plusieurs pages par sujet, faudrait aussi rassembler tout ça)

Donc n'ayant jamais programmé pour le Web, j'imagine qu'il me faudra un moyen de télécharger les pages qui m'intéressent (curl a l'air adapté), ainsi qu'une bibliothèque pour parser le code HTML de la page et en extraire les infos que je veux. En regardant rapidement le code HTML d'une page du forum, ça m'a l'air finalement assez simple, pour prendre en exemple cette page, suffirait de récupérer tous les éléments rowdd et roweven et d'en sortir ce que je veux.

Donc je cherche pour l'instant surtout un bon parser de HTML, pas trop lourd (j'ai vu qu'il y en avait un dans Qt, des avis ?) et simple à utiliser (ce que je veux faire est assez simple j'imagine). Puis si possible des conseils pour assembler/utiliser/organiser tout ça ?

Je suis ouvert à tous les conseils smile

Dernière modification par Sga64 (Le 23/06/2013, à 14:35)

#2 Le 23/06/2013, à 17:08

grim7reaper

Re : [C++] Télécharger et parser une page HTML

Salut,

Perso, je partirais sur la libxml2 (c’est du C, mais c’est utilisable en C++ normalement, il y a peut-être même un wrapper C++ correct qui existe).
Pour info’, les bibliothèques du genre nokogiri (Ruby) et lxml (Python) se basent sur la libxml2.
Sinon tu as aussi Xerces-C++ qui, comme son nom l’indique, est direct en C++. Je pense que ça doit pouvoir parser du HTML, même si j’ai jamais essayé.

Mais bon clairement, tu vas te faire chier à faire ça en C++, il y a  des langages carrément plus sympa pour faire ce genre de truc. Mais bon, si tu veux pratiquer ton C++, bah vas-y ^^

Dernière modification par grim7reaper (Le 23/06/2013, à 17:12)

Hors ligne

#3 Le 24/06/2013, à 09:32

nicolas66

Re : [C++] Télécharger et parser une page HTML

Je plussoie grim7reaper, c++ n'est clairement pas un langage adapté pour ce genre de tâche. Perl l'est sûrement davantage.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#4 Le 24/06/2013, à 09:49

grim7reaper

Re : [C++] Télécharger et parser une page HTML

Ouais, Perl, Python ou Ruby sont plus adaptés à ce genre de tâches.

Hors ligne