OVH Cloud OVH Cloud

parsing HTML

5 réponses
Avatar
RaOuf
Bonjour,
je dois implémenter un aspirateur de site web, pour cela je dois donc
parcourir le site afin de l'afficher dans un JTree.
Je me demande donc :
Existe-t-il des méthodes qui parsent automatiquement un fichier HTML et qui
stockent les liens, ou alors faut-il lire les fichiers HTML lignes par
lignes afin de trouver les balises HREF, les stocker quelque part, etc ....
?

D'autre part, j'ai implémenté une classe qui dérive des Threads qui
télécharge un fichier (DownloadFile.class), j'ai donc donc implémenté un
DownloadManager afin de lancer ou stopper au bon moment les téléchargements.
Ce DownloadManager prend un nbr max de téléchargements simultanés. Pour le
moment j'ai fait ce DownloadManager en tant que Thread qui tourne dans une
boucle infinie afin de savoir s'il y a des nouveaux téléchargements à faire
ou non, mais je me demande si cela ne prend pas trop de ressources. En effet
lorsque je lance 2 DownloadManger, le deuxième garde la main de facon
continue mais si je fais des yield(); des sleep() etc ....
Pouvez vous m'aider si vous avez compris ma question ?
Sinon je tenterais de réexpliquer avec mes sources.

Merci

RaOuf

5 réponses

Avatar
John
Regex
<a href="chercherIci"></a>

"RaOuf" a écrit dans le message de news:
3facfb6d$0$260$
Bonjour,
je dois implémenter un aspirateur de site web, pour cela je dois donc
parcourir le site afin de l'afficher dans un JTree.
Je me demande donc :
Existe-t-il des méthodes qui parsent automatiquement un fichier HTML et
qui

stockent les liens, ou alors faut-il lire les fichiers HTML lignes par
lignes afin de trouver les balises HREF, les stocker quelque part, etc
....

?

D'autre part, j'ai implémenté une classe qui dérive des Threads qui
télécharge un fichier (DownloadFile.class), j'ai donc donc implémenté un
DownloadManager afin de lancer ou stopper au bon moment les
téléchargements.

Ce DownloadManager prend un nbr max de téléchargements simultanés. Pour le
moment j'ai fait ce DownloadManager en tant que Thread qui tourne dans une
boucle infinie afin de savoir s'il y a des nouveaux téléchargements à
faire

ou non, mais je me demande si cela ne prend pas trop de ressources. En
effet

lorsque je lance 2 DownloadManger, le deuxième garde la main de facon
continue mais si je fais des yield(); des sleep() etc ....
Pouvez vous m'aider si vous avez compris ma question ?
Sinon je tenterais de réexpliquer avec mes sources.

Merci

RaOuf




Avatar
John
Pour le download manager faire un singleton, et créer un thread par
téléchargement avec un nombre max de thread (multiton). Je pense que ce
n'est pas le download manager qui doit être un thread mais la procedure de
téléchargement. C'est le download manager qui gère les threads de
téléchargement.

"RaOuf" a écrit dans le message de news:
3facfb6d$0$260$
Bonjour,
je dois implémenter un aspirateur de site web, pour cela je dois donc
parcourir le site afin de l'afficher dans un JTree.
Je me demande donc :
Existe-t-il des méthodes qui parsent automatiquement un fichier HTML et
qui

stockent les liens, ou alors faut-il lire les fichiers HTML lignes par
lignes afin de trouver les balises HREF, les stocker quelque part, etc
....

?

D'autre part, j'ai implémenté une classe qui dérive des Threads qui
télécharge un fichier (DownloadFile.class), j'ai donc donc implémenté un
DownloadManager afin de lancer ou stopper au bon moment les
téléchargements.

Ce DownloadManager prend un nbr max de téléchargements simultanés. Pour le
moment j'ai fait ce DownloadManager en tant que Thread qui tourne dans une
boucle infinie afin de savoir s'il y a des nouveaux téléchargements à
faire

ou non, mais je me demande si cela ne prend pas trop de ressources. En
effet

lorsque je lance 2 DownloadManger, le deuxième garde la main de facon
continue mais si je fais des yield(); des sleep() etc ....
Pouvez vous m'aider si vous avez compris ma question ?
Sinon je tenterais de réexpliquer avec mes sources.

Merci

RaOuf




Avatar
Nicolas Repiquet
"John" a écrit dans le message news:
f38rb.2469$
Regex
<a href="chercherIci"></a>


Parser de façon sure du html avec des regex je te souhaite bien du plaisir
=)

http://lx.quiotix.com/downloads/html-parser/ c mieux, en plus il y a un
exemple d'un programme qui extrait tout les liens d'une page.

-- Nicolas Repiquet

Avatar
John
Parser de façon sure du html avec des regex je te souhaite bien du plaisir


je ne vois pas où est le problème avec les regex.

Ceci dit je ne suis pas contre une API toute faite. N'oublie pas que les
collages via javascript sont monnaie courante pour éviter le pompage des
sites. La reconnaissance des adresses doit être un peu plus poussée que dans
certaines APIs, et les regex sont une solution simple à ces petits
problèmes.

http://htmlparser.sourceforge.net/
http://www.quiotix.com/downloads/html-parser/

Avatar
Vincent Brabant

Parser de façon sure du html avec des regex je te souhaite bien du plaisir



je ne vois pas où est le problème avec les regex.
c'est que tu dois gérer tous les cas comme par exemple <A [des autres

parametres] href = 'référence ... ' />
où ' peut être ", où tu peux avoir des paramètres avant ou après,
bref, c'est pas si simple que cela en a l'air.

Ceci dit je ne suis pas contre une API toute faite. N'oublie pas que les
collages via javascript sont monnaie courante pour éviter le pompage des
sites. La reconnaissance des adresses doit être un peu plus poussée que dans
certaines APIs, et les regex sont une solution simple à ces petits
problèmes.

http://htmlparser.sourceforge.net/
http://www.quiotix.com/downloads/html-parser/

--

Vincent Brabant
----------------
http://www.netbeans.org/index_fr.html
http://vbrabant-fr.skynetblogs.be